SELECT CONCAT('ALTER TABLE `', table_name, '` CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;') FROM information_schema.TABLES AS T, information_schema.`COLLATION_CHARACTER_SET_APPLICABILITY` AS C WHERE C.collation_name = T.table_collation AND T.table_schema ='jira' AND ( C.CHARACTER_SET_NAME !='utf8mb4' OR C.COLLATION_NAME !='utf8mb4_bin' );
然后执行生成的sql,下面的同理。
修改数据行的排序规则
varchar行
1 2 3 4 5 6 7 8 9 10
SELECT CONCAT('ALTER TABLE `', table_name, '` MODIFY `', column_name, '` ', DATA_TYPE, '(', CHARACTER_MAXIMUM_LENGTH, ') CHARACTER SET utf8mb4 COLLATE utf8mb4_bin', (CASEWHEN IS_NULLABLE ='NO'THEN' NOT NULL'ELSE''END), ';') FROM information_schema.COLUMNS WHERE TABLE_SCHEMA ='jira' AND DATA_TYPE ='varchar' AND ( CHARACTER_SET_NAME !='utf8mb4' OR COLLATION_NAME !='utf8mb4_bin' );
非varchar行
1 2 3 4 5 6 7 8 9 10
SELECT CONCAT('ALTER TABLE `', table_name, '` MODIFY `', column_name, '` ', DATA_TYPE, ' CHARACTER SET utf8mb4 COLLATE utf8mb4_bin', (CASEWHEN IS_NULLABLE ='NO'THEN' NOT NULL'ELSE''END), ';') FROM information_schema.COLUMNS WHERE TABLE_SCHEMA ='jira' AND DATA_TYPE !='varchar' AND ( CHARACTER_SET_NAME !='utf8mb4' OR COLLATION_NAME !='utf8mb4_bin' );