使用MySQL,给定一个包含3个已知命名列(EG“Column1”,“Column2”和“Column3”)的表(名为“Table1”)和未知数量的未知命名列,如何设置类型带有SQL语句的所有未知列到varchar(40)?
答案 0 :(得分:1)
只需生成所需的语句并运行它们
select concat('alter table ', table_name, ' modify column ', column_name, ' VARCHAR(40)') from information_schema.columns
where table_schema='yourdb' and table_name='table1'
and column_name NOT IN('col1','col2','col3')
答案 1 :(得分:0)
我不知道任何这样的sql语句可以做到这一点,但你可以编写一个简短的程序来查询Table1中的列名,然后构建ALTER sql命令将所有列设置为varchar(40)。