nop*_*ole 6 mysql sql alter-table primary-key auto-increment
我在MySQL中有一个有主键的表:
mysql> desc gifts;
+---------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------------+-------------+------+-----+---------+-------+
| giftID | int(11) | NO | PRI | NULL | |
| name | varchar(80) | YES | | NULL | |
| filename | varchar(80) | YES | | NULL | |
| effectiveTime | datetime | YES | | NULL | |
+---------------+-------------+------+-----+---------+-------+
Run Code Online (Sandbox Code Playgroud)
但我想让它成为auto_increment.
以下声明失败.如何修改以使其可以工作?谢谢
mysql> alter table gifts modify giftID int primary key auto_increment;
ERROR 1068 (42000): Multiple primary key defined
Run Code Online (Sandbox Code Playgroud)
不要使用primary key属性:
ALTER TABLE gifts MODIFY giftID INT AUTO_INCREMENT;
Run Code Online (Sandbox Code Playgroud)
某些列属性(例如)PRIMARY KEY不完全是列的属性,而是其他事物的快捷方式.PRIMARY KEY例如,标记的列放在PRIMARY索引中.此外,PRIMARY索引中的所有列都被赋予NOT NULL属性.(除此之外:要使用多列主键,必须使用单独的约束子句而不是多PRIMARY KEY列属性.)由于列已在PRIMARY索引中,因此在修改列时无需再次指定.尝试SHOW CREATE TABLE gifts;查看使用该PRIMARY KEY属性的影响.