如何更改已知长度的所有列中的varchar长度?

时间:2013-09-12 13:53:00

标签: mysql

我有很多列varchar(45)的表格。现在我需要他们全部成为varchar(128)。有没有办法在不手动检查所有40个表的情况下完成它?

我发现this question触及了类似的主题,但是如何使用列进行操作?

1 个答案:

答案 0 :(得分:3)

要获得满足我需求的所有列,我可以使用:

SELECT table_name, column_name FROM information_schema.columns 
  WHERE table_schema LIKE "my_schema_name" 
    AND data_type = "varchar"
    AND character_maximum_length < 50;

现在我需要使用任何可以连接到MySQL的编程语言,并在循环中执行:

ALTER TABLE table_name MODIFY column_name VARCHAR(128);