programing

MariaDB 테이블과 테이블 열에서 특정 문자를 대체할 수 있는 제안 사항이 있습니까?

mailnote 2023. 9. 28. 08:40
반응형

MariaDB 테이블과 테이블 열에서 특정 문자를 대체할 수 있는 제안 사항이 있습니까?

"."를 바꾸는 데 어려움을 겪고 있습니다. MariaDB의 SQL 구문은 문자열을 통해 문자를 바꾸는 것을 허용한다는 것을 알고 있습니다.저는 이미 그렇게 하려고 시도했지만, 구문의 구조를 인식하지 못하는 오류가 계속 발생합니다.

참고로, 테이블을 만들 때 이름 변경을 활성화/허용/허용하는 열뿐만 아니라 테이블의 자율적인 변경을 허용하는 기능, 트리거 및 모듈을 아는 사람이 있습니까?

(댓글에서)

ALTER  TABLE xover_sao MODIFY COLUMN 'Abell Object' 'xover_sao_object' VARCHAR(255);
-: 
ALTER  TABLE xover_sao MODIFY 'Abell Object' 'xover_sao_object' VARCHAR(255);
-: 
ALTER  TABLE xover_sao MODIFY 'Abell Object' REPLACE('Abell Object',
                ' ', ''
                          );
-: 
ALTER  TABLE xover_sao MODIFY 'Abell Object' REPLACE('Abell Object',
                ' ', ''
                          );

MODIFY이름을 변경할 수 없습니다.

에 대한 식을 사용할 수 없습니다.col_name.

따라서, 이는 가능한 한 가장 가까운 것입니다.

ALTER TABLE xover_sao
    CHANGE COLUMN 'Abell Object' 'xover_sao_object' VARCHAR(255);

그러나 다음과 같은 다른 것을 정의에 포함해야 합니다.NOT NULL,CHARACTER SET,기타.

안타깝게도 구문이 인식되지 않아 오류라고 설명하고 실패합니다.

열 이름의 문자를 바꾸거나 열 이름에 대해 어떤 형식의 표현을 사용하는 것과 같은 작업을 수행하기 위한 구문에 내장되어 있지 않지만 다음에 대한 쿼리를 사용할 수 있습니다.information_schema.columns효과적으로 실행할 수 있는 SQL 스크립트를 생성합니다.

뭔가...

SELECT CONCAT("ALTER TABLE `", c.table_schema, "`.`", c.table_name, "` "
              , "CHANGE COLUMN `", c.column_name, "` "
              , "`", REPLACE(c.column_name, " ", "_"), "` "
              , -- [use information from c to reconstruct the exact definition here]
              , ";") AS sqlStmt
FROM information_schema.columns AS c
WHERE c.column_name LIKE "% %"
;

언급URL : https://stackoverflow.com/questions/45361412/are-there-any-suggestions-for-replacing-specific-characters-in-mariadb-tables-a

반응형