是否有一个单独的select语句可以完成所有这三个操作:主键,唯一键和auto_increment?

最佳答案

这里我们创建一个小表:

mysql> CREATE TABLE test2 (id int);


注意Null是YES,id不是主键,也不是auto_increment。

mysql> DESCRIBE test2;
+-------+---------+------+-----+---------+-------+
| Field | Type    | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
| id    | int(11) | YES  |     | NULL    |       |
+-------+---------+------+-----+---------+-------+
1 row in set (0.00 sec)


这是alter命令:

mysql> ALTER TABLE test2 MODIFY COLUMN id INT NOT NULL auto_increment, ADD primary key (id);


现在Null为NO,id是具有auto_increment的主键。

mysql> describe test2;
describe test2;
+-------+---------+------+-----+---------+----------------+
| Field | Type    | Null | Key | Default | Extra          |
+-------+---------+------+-----+---------+----------------+
| id    | int(11) | NO   | PRI | NULL    | auto_increment |
+-------+---------+------+-----+---------+----------------+
1 row in set (0.00 sec)


主键始终是唯一的。

10-06 13:02
查看更多