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

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');

相关推荐
@Mike@1 小时前
06-数据库学习笔记(存储模型与数据压缩)
数据库·笔记·学习
南凉北往2 小时前
PandasAI连接LLM对MySQL数据库进行数据分析
数据库·mysql·数据分析
回眸不遇2 小时前
详谈 QT 布局 QLayout::SizeConstraint 和 QSizePolicy 对 QWidget 尺寸的影响
数据库·qt·系统架构
2601_965798472 小时前
MTDb Movie & TV Database Script Setup, Caching, and SEO Guide
linux·服务器·数据库·php
zdl6862 小时前
EasyMarkets:“机器人商业化仍待验证”
数据库·机器人
Freak嵌入式3 小时前
版本混乱 / 依赖缺失?uPyPi:MicroPython 版 PyPI,彻底解决库管理混乱
linux·服务器·数据库·单片机·嵌入式硬件·性能优化·依赖倒置原则
Elastic 中国社区官方博客3 小时前
Elastic 和 OpenAI 合作,将前沿智能引入非结构化企业数据
大数据·数据库·人工智能·elasticsearch·搜索引擎·ai
云和恩墨3 小时前
数据库一体机zData X 3.6.0以“性能、成本、韧性、生态”强化数据库基础设施价值主张
数据库
蓝鸟19743 小时前
EXISTS子查询SELECT 1与SELECT *到底有无区别?Oracle生产实测解惑(附HIS业务SQL案例)
oracle·his系统·sql优化·数据库调优·exists