如何一次性将Collat​​ion更改为utf8_bin

时间:2011-01-24 16:08:42

标签: mysql database-design utf-8 collation

我已将所有数据库表的排序规则设置为latin1_swedish_ci,现在我意识到我应该使用utf8_binutf8_general_ci

如何一次将表格中的排序规则更改为utf8_binutf8_general_ci?我可以使用查询吗?

4 个答案:

答案 0 :(得分:29)

您只需要在每个表上运行ALTER,如下所示:

ALTER TABLE <table name> COLLATE utf8_general_ci;

如果您还需要更新现有的字符编码(不太可能是声音),您可以使用:

ALTER TABLE <table name> CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;

答案 1 :(得分:10)

您还可以使用以下命令更新数据库归类:

ALTER DATABASE  `DATABASE_NAME` DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci

答案 2 :(得分:0)

您可以使用ALTER TABLE更改表的排序规则:

alter table table_name collate=utf8_general_ci;

答案 3 :(得分:0)

这有两种方法。第一个为我工作。从终端(记得以前备份。)

mysql --database=dbname -B -N -e "SHOW TABLES"  | awk '{print "ALTER TABLE", $1, "CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;"}' | mysql --database=dbname &

来源:Commandlineinfu.com

来自MySQL 你将不得不使用Concat命令

SELECT CONCAT('ALTER TABLE `', tbl.`TABLE_SCHEMA`, '`.`', tbl.`TABLE_NAME`, '` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;') FROM `information_schema`.`TABLES` tbl WHERE tbl.`TABLE_SCHEMA` = 'dbname'