mysql - 如何在mysql中一次更改多个表

标签 mysql database

我想更改数据库中所有表的字符集。 要更改一个表的字符集,我可以将其执行为:

“改变表 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/

相关文章:

sql - 有人同时在我的网站上创建了两个相同的帐户。这怎么可能?

database - MongoDB 中电子商务网站的数据建模

java - 如何在 Android 的 recyclerview 中访问我的数据库?

php - 如何将具有基于 null 和 not null 的相同字段的两个表行列合并为一行?

Mysql 触发器有两个表

.net - 在哪里可以找到适用于 64 位的 mySql Connector 6.3.0?

sql - 容纳数据透视表中的行总和

php - Mysql计数并拆分为日、周、年以在同一查询中进行统计

php - UTF-8贯穿始终

linux - 无法删除 postgresql 数据库