2014-10-09 40 views
0

使用MySQL,给定一个包含3个已知命名列(EG“Column1”,“Column2”和“Column3”)和未知数量的未知命名列的表(命名为“Table1”),如何使用SQL语句将所有未知列的类型设置为varchar(40)?MySQL - 改变列类型

+0

嗯,为什么呢?这是功课吗? “动态SQL”是我无需写出所有列名就可以想到的唯一方法... – sgeddes 2014-10-09 00:39:22

回答

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

我不知道任何这样的sql语句可以做到这一点,但是您可以编写一个简短的程序查询Table1中的列名,然后构建ALTER sql命令将所有列设置为varchar(40)。