alter table在column1之后添加多列

我需要添加多个列到一个表,但将列放在名为lastname的列之后。

我试过这个:

 ALTER TABLE `users` ADD COLUMN ( `count` smallint(6) NOT NULL, `log` varchar(12) NOT NULL, `status` int(10) unsigned NOT NULL ) AFTER `lastname`; 

我得到这个错误:

你的SQL语法有错误; 检查对应于你的MySQL服务器版本的手册,在第7行''AFTER lastname ''附近使用正确的语法

如何在这样的查询中使用AFTER?

尝试这个

 ALTER TABLE users ADD COLUMN `count` SMALLINT(6) NOT NULL AFTER `lastname`, ADD COLUMN `log` VARCHAR(12) NOT NULL AFTER `count`, ADD COLUMN `status` INT(10) UNSIGNED NOT NULL AFTER `log`; 

检查语法

如果你想在特定字段后添加单列,那么mysql查询是:

 ALTER TABLE users ADD COLUMN count SMALLINT(6) NOT NULL AFTER lastname 

如果你想添加多个列,那么你需要每次使用'ADD'命令作为列。 mysql的查询如下所示:

 ALTER TABLE users ADD COLUMN count SMALLINT(6) NOT NULL, ADD COLUMN log VARCHAR(12) NOT NULL, ADD COLUMN status INT(10) UNSIGNED NOT NULL AFTER lastname 

注意点 :在第二种方法中,最后一个ADD COLUMN 实际上应该是你想追加到表格的第一列。

例如:如果你想添加countlogstatuslastname之后,那么语法实际上是:

 ALTER TABLE users ADD COLUMN log VARCHAR(12) NOT NULL, ADD COLUMN status INT(10) UNSIGNED NOT NULL, ADD COLUMN count SMALLINT(6) NOT NULL AFTER lastname 

这是正确的:

 ALTER TABLE `users` ADD COLUMN `count` SMALLINT(6) NOT NULL AFTER `lastname`, ADD COLUMN `log` VARCHAR(12) NOT NULL AFTER `count`, ADD COLUMN `status` INT(10) UNSIGNED NOT NULL AFTER `log`; 

您不能使用ADD COLUMN以逗号提及多个列名称。 每次定义新列时,都需要提及ADD COLUMN

一种可能性就是不用重新sorting表中的列,只需通过添加列来修改它。 然后,创build一个按您想要的顺序包含列的视图 – 假定顺序非常重要。 视图可以很容易地改变,以反映任何你想要的顺序。 由于我无法想象这个顺序对于程序化应用程序是非常重要的,所以这个视图对于那些可能很重要的手动查询就足够了。

ALTER TABLE users EXISTING COLUMN NAME后面添加列COLUMN NAME (DATATYPE)(SIZE)

你可以做到这一点,为我工作得很好。

这对我来说很好:

 ALTER TABLE 'users' ADD COLUMN 'count' SMALLINT(6) NOT NULL AFTER 'lastname', ADD COLUMN 'log' VARCHAR(12) NOT NULL AFTER 'count', ADD COLUMN 'status' INT(10) UNSIGNED NOT NULL AFTER 'log';