转--修改MySql中数据表和字段的字符集和排序规则

2018-06-17 23:43:33来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

由于数据库中的数据表和表字段的字符集和排序规则不统一,找了很多帖子,最后发现如下脚本很好用。

用法儿是:先执行如下脚本生成修改数据表和表字段的脚本,然后再执行这些生成的脚本

1. 修改指定数据库中所有varchar类型的表字段的字符集为UTF8,并将排序规则修改为utf8_general_ci

SELECT CONCAT('ALTER TABLE `', table_name, '` MODIFY `', column_name, '` ', DATA_TYPE, '(', CHARACTER_MAXIMUM_LENGTH, ') CHARACTER SET UTF8 COLLATE utf8_general_ci', (CASE WHEN IS_NULLABLE = 'NO' THEN ' NOT NULL' ELSE '' END), ';')
FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = 'databaseName'
AND DATA_TYPE = 'varchar'
AND (CHARACTER_SET_NAME != 'utf8' OR  COLLATION_NAME != 'utf8_general_ci' );

2. 修改指定数据库中所有数据表的字符集为UTF8,并将排序规则修改为utf8_general_ci 

SELECT CONCAT('ALTER TABLE ', table_name, 'CONVERT TO CHARACTER SET  utf8 COLLATE utf8_general_ci;')
FROM information_schema.TABLES
WHERE TABLE_SCHEMA = 'databaseName'

  

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:MySQL中null值问题

下一篇:用一条SQL语句查出每门课都大于80分的学生的姓名