使用单个查询更改多个表?

时间:2014-05-29 07:18:34

标签: mysql

我可以使用单个查询更改 MULTIPLE TABLES 吗?如果是这样,那是什么样的正确语法?

我已经尝试过了:

ALTER TABLE tbl1 ADD (name VARCHAR (50), age DATETIME)
ALTER TABLE tbl2 ADD (name VARCHAR (50), age DATETIME)

1 个答案:

答案 0 :(得分:3)

根据MySQL docoalter table只允许您一次更改一个表:

ALTER [ONLINE | OFFLINE] [IGNORE] TABLE tbl_name
    [alter_specification [, alter_specification] ...]
    [partition_options]

此处没有多个TABLE tbl_name子句的规定,因此您需要两个不同的alter table命令。

当然,如果您使用外部工具(如bash)来运行命令,那么就没有什么能阻止您做以下事情:

for tbl in tbl1 tbl2 ; do
    mysql --user=pax \
          --password=never_you_mind \
          --execute="alter table ${tbl} add (name varchar(50), age datetime)"
done