修改语句:
ALTER TABLE t1 MODIFY
col1 VARCHAR(5)
CHARACTER SET latin1
COLLATE latin1_swedish_ci;
information_schema.COLUMNS仅仅是个view,不能修改其中的值,故需要以上语句来修改。
批量获取修改语句:
SELECT CONCAT('ALTER TABLE `', table_name, '` MODIFY `', column_name, '` ', DATA_TYPE, '(', CHARACTER_MAXIMUM_LENGTH,
') CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci', ';')
FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = 'sortest' AND DATA_TYPE = 'varchar' AND COLLATION_NAME = 'utf8mb4_bin';
以上语句获得:
ALTER TABLE `article` MODIFY `author` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE `article` MODIFY `from_IP` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE `article` MODIFY `last_reply` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
在将获得的语句执行即可。 |