我想更改数据库中所有表的字符集。 要更改一个表的字符集,我可以将其执行为:
“改变表 mydb.mytable1 转换为字符集 utf8 COLLATE utf8_general_Ci;”
但是我的“我的数据库”数据库中有很多表。 我们可以从 information_schema 表中读取的表列表。 但我不确定如何形成精确查询,以便通过一个查询可以一次更改所有表的字符集。
最佳答案
-- https://stackoverflow.com/a/39465494/819417
SELECT concat('ALTER TABLE ', TABLE_NAME, ' CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;')
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'your_db_name'
然后复制/粘贴所有结果并使用数据库工具或脚本语言逐一运行它们。
要在添加它们时修复 future 的表,请同时运行:
ALTER DATABASE your_db_name CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
关于mysql - 如何在mysql中一次更改多个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25971686/