如何将SQL中的主键更改为auto_increment?

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)

out*_*tis 8

不要使用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属性的影响.