我需要向表中添加多个列,但在列调用后将列定位lastname
.
我试过这个:
ALTER TABLE `users` ADD COLUMN
(
`count` smallint(6) NOT NULL,
`log` varchar(12) NOT NULL,
`status` int(10) unsigned NOT NULL
)
AFTER `lastname`;
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
您的SQL语法有错误; 检查与您的MySQL服务器版本对应的手册,以便
lastname
在第7行的')AFTER ' 附近使用正确的语法
如何在这样的查询中使用AFTER?
Ayy*_*kar 674
试试这个
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`;
Run Code Online (Sandbox Code Playgroud)
检查语法
小智 73
如果要在特定字段后添加单列,则mysql查询为:
ALTER TABLE users
ADD COLUMN count SMALLINT(6) NOT NULL
AFTER lastname
Run Code Online (Sandbox Code Playgroud)
如果要添加多个列,则每次都需要对列使用"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
Run Code Online (Sandbox Code Playgroud)
注意:在第二种方法中,最后一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
Run Code Online (Sandbox Code Playgroud)
Wes*_*Ace 10
或者:
ALTER TABLE users
ADD COLUMN `status` INT(10) UNSIGNED NOT NULL AFTER `lastname`,
ADD COLUMN `log` VARCHAR(12) NOT NULL AFTER `lastname`,
ADD COLUMN `count` SMALLINT(6) NOT NULL AFTER `lastname`;
Run Code Online (Sandbox Code Playgroud)
将按照您想要的顺序放置它们,同时简化 AFTER 语句。
小智 9
这个是正确的:
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`;
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
514002 次 |
最近记录: |