更改列的所有现有排序规则

时间:2017-02-27 07:43:38

标签: mysql collation

我有一个表,其中一些列具有utf8_bin的排序规则。但我需要将它们更改为utf8_unicode_ci。 我知道这个查询:

ALTER TABLE  `shn_sho_cities` CHANGE  `city_name`  `city_name` VARCHAR( 100 ) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL ;

但是我想要更改所有具有utf8_bin的列,而不是为每列编写查询。 有什么方法可以做到这一点吗?

1 个答案:

答案 0 :(得分:1)

以下代码将生成所需的查询以更改您的归类,utf8mb4 utf8mb4_unicode_ci

SELECT CONCAT('ALTER TABLE `', TABLE_NAME,'` CONVERT TO CHARACTER SET 
utf8mb4 COLLATE utf8mb4_unicode_ci;') AS    mySQL
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA= "YOU-DB-NAME"
AND TABLE_TYPE="BASE TABLE"