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
列实际上应该是你想追加到表格的第一列。
例如:如果你想添加count
, log
, status
在lastname
之后,那么语法实际上是:
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';