【数据库】Mysql 批量变更所有字段类型为varchar的字符集
如下图所示,修改语句中的你的数据库名称,放到查询页面,运行后自动生成变更语句!
·
生成变更语句
SELECT
CONCAT(
'ALTER TABLE ', TABLE_NAME,
' MODIFY ', COLUMN_NAME,
' ', COLUMN_TYPE, ' ',
' CHARACTER SET utf8 COLLATE utf8_general_ci ',
CASE
WHEN IS_NULLABLE = 'YES' THEN ' NULL DEFAULT NULL '
WHEN IS_NULLABLE = 'NO' AND ISNULL(COLUMN_DEFAULT) THEN 'NOT NULL '
ELSE CONCAT("NOT NULL DEFAULT '",COLUMN_DEFAULT,"'")
END,
"COMMENT '",
COLUMN_COMMENT,
"';"
) AS alter_statement
FROM
INFORMATION_SCHEMA.`COLUMNS`
WHERE
TABLE_SCHEMA = '你的数据库名称'
AND
CHARACTER_SET_NAME = 'gbk'
AND
TABLE_NAME IN (
SELECT
TABLE_NAME
FROM
information_schema.`TABLES`
WHERE
TABLE_SCHEMA = '你的数据库名称'
AND
TABLE_TYPE = 'BASE TABLE'
);
如下图所示,修改语句中的你的数据库名称
,放到查询页面,运行后自动生成变更语句!
运行查询结果
将上一步骤生成的变更语句复制到新的查询页面运行,即可完成所有varchar
字符集的变更。
注意
:一定要在修改字符集
数据库下运行,否则可能会报如下错误:
Err] 1044 - Access denied for user 'rdis'@'%' to database 'information_schema'
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
已为社区贡献22条内容
所有评论(0)