2014-10-09 196 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)。