0
点赞
收藏
分享

微信扫一扫

MySQL一条SQL修改全库字段的编码格式

求索大伟 2022-05-13 阅读 175


-- 1. 修改数据库编码
ALTER DATABASE /* database name */ CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;

-- 2. 生成修改表编码的语句
SELECT
CONCAT(
'ALTER TABLE ',
TABLE_NAME,
' CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ') AS alter_sql
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA='/* database name */'
AND TABLE_TYPE='BASE TABLE'
ORDER BY TABLE_NAME;

-- 3. 生成修改所有表的所有 varchar 类型字段编码的语句
-- 注意:需要手动去除视图的修改语句
SELECT
CONCAT(
'ALTER TABLE ', TABLE_NAME, ' CHANGE ',
'`', COLUMN_NAME, '` ',
'`', COLUMN_NAME, '` ',
COLUMN_TYPE,
' CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;') AS alter_sql
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA='/* database name */'
AND DATA_TYPE='varchar'
ORDER BY TABLE_NAME, COLUMN_NAME;

生成语句如下,直接复制执行即可

MySQL一条SQL修改全库字段的编码格式_ico

举报

相关推荐

0 条评论