Mysql 使用【information_schema.COLUMNS】批量修改表字段属性
Mysql 使用【information_schema.COLUMNS】批量修改表字段属性
说一下 columns中需要关注的几个字段
还有个column_type,这个要字段类型加长度,比如varchar(20)
SELECT
concat(
'alter table ',
table_schema, '.', table_name,
' modify column ', column_name, ' ', 'varchar(512)', ' ',
if(is_nullable = 'YES', ' ', 'not null '),
if(column_default IS NULL, '',
if(
data_type IN ('char', 'varchar')
OR
data_type IN ('date', 'datetime', 'timestamp') AND column_default != 'CURRENT_TIMESTAMP',
concat(' default ''', column_default,''''),
concat(' default ', column_default)
)
),
if(extra is null or extra='','',concat(' ',extra)),
' comment ''', column_comment, ''';'
) s
FROM information_schema.columns
WHERE table_schema = 'col_test' -- col_test 为测试的数据库名称
-- AND table_name = 'test_columns' -- test_columns 为 测试的表名称
AND data_type = 'varchar' --要修改的类型这个是拼接之后的sql
alter table col_test.test_columns modify column create_by varchar(512) comment '创建人';
使用注意事项,用nvicat的命令行运行,不然遇到报错会停下,不运行后面的脚本
不恋尘世浮华,不写红尘纷扰