Mysql 使用【information_schema.COLUMNS】批量修改表字段属性

Mysql 使用【information_schema.COLUMNS】批量修改表字段属性

说一下 columns中需要关注的几个字段

1649920516528

还有个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的命令行运行,不然遇到报错会停下,不运行后面的脚本

posted @ 2022-04-14 15:24  小傻孩丶儿  阅读(556)  评论(0编辑  收藏  举报