同时更改sql数据库中列的多个功能

时间:2018-03-22 16:20:30

标签: mysql database

我对sql相当新,所以我遇到了大多数人可能已经看过的情况。

致力于提高数据库的效率。我最终将数据库从MS Access / Alpha 5 Anywhere传输到MySQL,但首先,我要更改一些列'大小,类型,名称以及分配外键。有些列只需要进行一次更改,有些则需要进行多次更改。

为了尽量减少在生产版本上进行这些更改所需的时间,我希望使用最少数量的语句进行更改。

作为一个例子,是否可以有一个像这样的语句

ALTER TABLE "tablename"
ALTER COLUMN "columnname1" datatype
CHANGE "columnname1" "new_columnname1"
DROP ("columnname2", "columnname3");

而不是像这样的三个语句

ALTER TABLE "tablename"
ALTER COLUMN "columnname1" datatype;

ALTER TABLE "tablename"
CHANGE "columnname1" "new_columnname1";

ALTER TABLE "tablename"
DROP ("columnname2", "columnname3");

如果无法做到这一点,实现目标的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

ALTER TABLE可以在一个语句中执行多个表更改,但是MODIFY COLUMN一次只能在一个列上工作,因此您需要为要更改的每个列指定MODIFY COLUMN:

ALTER TABLE webstore.Store   MODIFY COLUMN ShortName VARCHAR(100),   修改栏目UrlShort VARCHAR(100);