我需要在一个表中添加多个列,但在名为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 ?


当前回答

ADD count INT(5), ADD log VARCHAR(200), ADD status VARCHAR(20) AFTER stat

这样会有很好的效果。

其他回答

如果你想在一个特定的字段后面添加一个列,那么下面的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列实际上应该是要附加到表中的第一列。

例如:如果你想添加count, log, status在lastname后面的确切顺序,那么语法实际上是:

ALTER TABLE users
    ADD COLUMN log VARCHAR(12) NOT NULL AFTER lastname,
    ADD COLUMN status INT(10) UNSIGNED NOT NULL AFTER lastname,
    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 count INT(5), ADD log VARCHAR(200), ADD status VARCHAR(20) AFTER stat

这样会有很好的效果。

对于我来说,默认值为0的解决方案如下

ALTER TABLE reservations ADD COLUMN isGuest BIT DEFAULT 0
ALTER TABLE `users` ADD COLUMN
`COLUMN NAME` DATATYPE(SIZE) AFTER `EXISTING COLUMN NAME`;

你可以用这个,对我来说很好。