MYSQL8.0 修改字符集和排序规则-企业实战

#MYSQL8.0 修改字符集和排序规则

由于MYSQL8.X 的排序规则从默认5.7的utf8_general_ci 修改为:utf8mb4_0900_ai_ci, 所以不管是MYSQL5.7迁移还是其他的操作导致排序规则更改都需要更改, 要不然会导致表关联join出错.

#查询非utf8mb4_0900_ai_ci排序规则

select CONCAT(
		'ALTER TABLE `', TABLE_SCHEMA, '`.`', TABLE_NAME,
    '` MODIFY COLUMN `', COLUMN_NAME, '` ', COLUMN_TYPE,
    ' CHARACTER SET ', CHARACTER_SET_NAME,
    ' COLLATE utf8mb4_0900_ai_ci',
    CASE IS_NULLABLE WHEN 'YES' THEN ' NULL' ELSE ' NOT NULL' END,
    CASE WHEN COLUMN_DEFAULT IS NULL THEN '' ELSE CONCAT(' DEFAULT \'', COLUMN_DEFAULT, '\'') END,
    ' COMMENT \'', COLUMN_COMMENT, '\'',
    ';'
)
from information_schema.COLUMNS
where TABLE_SCHEMA in ('DATABASE数据库1', 'DATABASE数据库2', 'DATABASE数据库3') 
and COLLATION_NAME &l

你可能感兴趣的:(数据库,sql)