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

我已经尝试过:

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

最佳答案

根据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

关于mysql - 使用单个查询更改多个表?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23927913/

10-14 04:31