Administrator
发布于 2024-09-18 / 6 阅读
0
0

统一修改mysql数据库的字符编码和字段的编码

-- 数据库所有表排序规则

SELECT TABLE_SCHEMA '你的表名字',TABLE_NAME '表',TABLE_COLLATION '原排序规则',CONCAT('ALTER TABLE ',TABLE_NAME, ' CHARACTER SET=utf8mb4,  COLLATE=utf8mb4_general_ci;') '修正SQL'

FROM information_schema.`TABLES` where TABLE_SCHEMA = '你的表名字' and TABLE_COLLATION != 'utf8mb4_general_ci';

-- 数据库所有表字段排序规则

SELECT
	TABLE_SCHEMA '数据库',
	TABLE_NAME '表',
	COLUMN_NAME '字段',
	CHARACTER_SET_NAME '原字符集',
	COLLATION_NAME '原排序规则',
	CONCAT('ALTER TABLE ',TABLE_NAME,' MODIFY COLUMN ',COLUMN_NAME,' ',COLUMN_TYPE,
	-- 设置新的编码和排序规则
	' CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci',
	( CASE WHEN IS_NULLABLE = 'NO' THEN ' NOT NULL' ELSE '' END ),
	( CASE WHEN COLUMN_COMMENT = '' THEN ' ' ELSE concat( ' COMMENT''', COLUMN_COMMENT, '''' ) END ),
	';' 
) '修正SQL' 
from  information_schema.`COLUMNS` 
where COLLATION_NAME != 'utf8mb4_general_ci'  AND TABLE_SCHEMA = '你的表名字';


评论