批量生成所有表的修改脚本

1、-- 请将 'your_database_name' 替换为你的真实数据库名

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 = 'your_database_name' AND TABLE_TYPE = 'BASE TABLE';

2、-- 请将 'your_database_name' 替换为你的真实数据库名,过滤表名

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 = 'your_database_name'

AND TABLE_TYPE = 'BASE TABLE'

AND TABLE_NAME LIKE 'dry\%' ESCAPE '\'; -- 匹配以 dry 开头的表

3、修改字段

-- 请将 'your_database_name' 替换为你的真实数据库名

SELECT CONCAT(

'ALTER TABLE `', TABLE_NAME, '` MODIFY `', COLUMN_NAME, '` ',

COLUMN_TYPE,

' CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci',

IF(IS_NULLABLE = 'NO', ' NOT NULL', ''),

IF(COLUMN_DEFAULT IS NOT NULL, CONCAT(' DEFAULT ''', COLUMN_DEFAULT, ''''), ''),

';'

) AS alter_sql

FROM information_schema.COLUMNS

WHERE TABLE_SCHEMA = 'your_database_name'

AND DATA_TYPE IN ('varchar', 'char', 'text', 'tinytext', 'mediumtext', 'longtext');

相关推荐
captain3765 小时前
MyBatis(入门5)其他查询操作
java·数据库·spring boot·mybatis
小此方6 小时前
Re:Mysql数据库基础篇(八):详细讲解复合查询、多表查询、自连接、多行、多列子查询与合并查询
数据库·mysql
xszivvvv6 小时前
Mariadb数据库frm文件异常,如何恢复数据
数据库·mariadb
smile_life_7 小时前
MySQL 设置 防止账户被暴力破解
数据库·mysql
ShineWinsu7 小时前
对于Qt:QRadioButton常见属性以及QButtonGroup的解析
数据库·c++·qt·microsoft·gui·qradiobutton·qbuttongroup
测试盐7 小时前
oracle数据库卡顿排查
数据库·oracle
滕州市燕猫虎计算机科技工作室个体工商户7 小时前
MySQL、MVCC、多版本并发控制
数据库·mysql·mvcc·数据库事务
明航咨询-陈老师8 小时前
ITSS运行维护服务能力成熟度认证技术纵深:标准模型、等级路径、2026审核趋势与CS/CMMI对比
服务器·数据库·cmmi
缓慢更新8 小时前
AI 辅助生成单测:从接口定义到用例的流水线
java·服务器·前端·网络·数据库·人工智能
AI小百科9 小时前
向量数据库:AI 的「记忆仓库」是怎么工作的
数据库·人工智能·oracle