MySQL - 如何更改所有数据库中的列数据类型?

时间:2017-11-27 18:02:43

标签: mysql command-line ddl

在我的远程服务器上,我需要更新所有数据库中表的列。我怎么能一次完成这一切?我有超过一百个拥有相同表格的数据库。

ALTER TABLE tablename MODIFY columnname VARCHAR(255);

1 个答案:

答案 0 :(得分:2)

您可以编写SQL查询来发出执行此操作的脚本。该查询查看描述服务器中列的information_schema表,并生成一系列ALTER个查询。然后运行这些查询。

SELECT CONCAT(' ALTER TABLE `', TABLE_SCHEMA, '`.`', TABLE_NAME, 
              '` MODIFY `',COLUMN_NAME,'` VARCHAR(255);') ddl 
  FROM information_schema.`COLUMNS` 
 WHERE TABLE_NAME = 'tablename' 
   AND COLUMN_NAME IN ('columnname')

没有任何oneliner可以做ALTER TABLE *.tablename或类似的事情。