반응형
Mysql: 열 문자 집합 설정
기존 테이블이 있는데 특정 컬럼의 문자 집합만 utf-8로 변환하고 싶습니다.
이 명령어가ALTER TABLE table_name CONVERT TO CHARACTER SET utf8
테이블 전체에 해당되지만 컬럼 고유의 명령어를 찾고 있습니다.
그것에 대한 명령어가 있나요?
이것을 시험해 보세요.
ALTER TABLE t MODIFY col1 CHAR(50) CHARACTER SET utf8mb4;
나도 그렇게 생각해, 언제나 도움이 될 수 있어...최근에 데이터베이스를 수정했습니다.utf8에서 utf8mb4로 이동합니다.변경을 생성할 수 있는 스크립트는 다음과 같습니다.
테이블을 변경하는 SQL 명령 생성:
SELECT CONCAT("ALTER TABLE `",`TABLE_NAME`,"` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;")
FROM `information_schema`.`TABLES`
WHERE `TABLE_SCHEMA` = 'xxxx';
SQL 명령을 생성하여 각 열을 변경합니다.
SELECT CONCAT("ALTER TABLE `",`TABLE_NAME`,"` MODIFY `",`COLUMN_NAME`,"` ",COLUMN_TYPE," CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci ",IF(`IS_NULLABLE`='YES', 'NULL', 'NOT NULL')," ",IF(`COLUMN_DEFAULT` IS NOT NULL, CONCAT(" DEFAULT '", `COLUMN_DEFAULT`, "'"), ''),";")
FROM `information_schema`.`COLUMNS`
WHERE `TABLE_SCHEMA` = 'xxx' AND `TABLE_NAME` = 'xxxx' AND (`CHARACTER_SET_NAME` IS NOT NULL OR `COLLATION_NAME` IS NOT NULL);
관계를 만드는 외부 키와 기본 키의 경우 열을 수정하기 전에 초기 키 검사를 비활성화해야 합니다.
SET FOREIGN_KEY_CHECKS=0;
를 유효하게 합니다.
SET FOREIGN_KEY_CHECKS=1;
1명 이하가 나에겐 통했어.
ALTER TABLE table_name
MODIFY column_name VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci;
이건 나한테 효과가 있었어.
ALTER TABLE `table_name` CHANGE `column_name` `column_name` TEXT CHARACTER SET utf8 COLLATE utf8mb4_unicode_ci;
언급URL : https://stackoverflow.com/questions/15781886/mysql-set-column-charset
반응형
'IT' 카테고리의 다른 글
DataFrame 열 유형을 문자열에서 날짜/시간으로 변환 (0) | 2022.11.17 |
---|---|
MariaDB over SSL이 작동하지 않습니다. "인증서 확인 실패" (0) | 2022.11.17 |
WooCommerce 제품이 실제로 품절되지 않은 경우 "품절" 메시지를 표시합니다. (0) | 2022.11.17 |
SQL Query 결과를 PANDA Data Structure로 변환하는 방법 (0) | 2022.11.17 |
MySQL 오류 #1071 - 지정된 키가 너무 깁니다. 최대 키 길이는 767바이트입니다. (0) | 2022.11.17 |