Sub*_*way 40 mysql utf-8 character-encoding
我有一个现有的表,我想只将一个特定列的字符集转换为utf-8.
我知道这个命令ALTER TABLE table_name CONVERT TO CHARACTER SET utf8是为整个表做的,但我正在寻找一个特定于列的命令.
那是否有命令?
div*_*thi 73
试试这个:
ALTER TABLE t MODIFY col1 CHAR(50) CHARACTER SET utf8;
Run Code Online (Sandbox Code Playgroud)
Abd*_*del 11
我同意,它总是有帮助...我最近修改了一个数据库; 从utf8转到utf8mb4; 这是允许我生成改变的脚本..
改变表格:
SELECT CONCAT("ALTER TABLE `",`TABLE_NAME`,"` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;")
FROM `information_schema`.`TABLES`
WHERE `TABLE_SCHEMA` = 'xxxx';
Run Code Online (Sandbox Code Playgroud)
改变每一列:
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);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
44936 次 |
| 最近记录: |