需求场景:
前几天有个事情当时需要调整字段属性,第一时间去查看数据库几百张表需要更改,很显然一条一条sql去写是不明智的选择、也不可取,第一时间想到用INFORMATION_SCHEMA
来解决这个问题, INFORMATION_SCHEMA
可以当它是一个数据库,贴切的说可以是信息数据库
示例
sql语句
select CONCAT('alter table ',
库名,
' MODIFY COLUMN ',
列名,
' ',
data_type,
' DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT "更新时间";') as col
from INFORMATION_SCHEMA.columns
WHERE
TABLE_SCHEMA = '库名'
and column_name = '列名'
LIMIT 5;
结果图
分析:
首先获取到 INFORMATION_SCHEMA.COLUMNS
表中的列信息 然后指定你要查询的表名 TABLE_SCHEMA = '表名'
这里因为我的需求是只需修改固定的一列所以我指定了列名 column_name = '列名'
然后查询出结果之后 就需要用到 CONCAT
函数进行拼接最后得到你需要执行修改的语句,最后将语句复制粘贴执行
文笔不好,献丑了。多多包含