我正在用mariadb和Spring JdbcTemplate进行开发。如何修改mariadb chartset?
起初,我们制作了DB字符集作为utf8
,但现在我们必须将其更改为utf8mb4
,因为表情符号。
到现在为止,我用下面的查询来更新单个字符集。
ALTER TABLE WT_WORKS CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE WT_WORKS CHANGE WORKS_TITLE WORKS_TITLE VARCHAR(300) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE WT_WORKS CHANGE WORKS_DESC WORKS_DESC VARCHAR(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
但是,由于表关系,它现在是有效的。例如,当我插入到WT_WORKS
时,还需要将其转换为WT_WRITERS
。看起来不可能找到每个表和列。
所以我想知道一次改变这些(包括Procedures
和Functions
)。 - 像(v_name VARCHAR(10))
到(v_name VARCHAR(10) CHARSET utf8mb4)
。
感谢您的回答。
仅供参考。我my.cnf
得到遵循设置
[client]
default-character-set=utf8mb4
[mysqld]
collation-server = utf8mb4_unicode_ci
character-set-server = utf8mb4
[client]
default-character-set = utf8mb4
它看起来像只能用一个查询无法修复。谢谢您的好意。 –
是的。一个查询会生成许多'ALTERs'列表,然后需要运行。 –