如果我忘记设置自动增量,我可以在MySQL中后来设置吗?
是的,您可以使用ALTER table以后设置自动增量。让我们先创建一个表。在这里,您可以看到我们没有设置自动增量 –
mysql> create table forgetToSetAutoIncrementDemo
-> (
-> StudentId int,
-> StudentName varchar(30)
-> );
查询成功,0行受影响(1.17秒)
现在检查表描述,没有自动增加列 –
mysql> desc forgetToSetAutoIncrementDemo;
这将产生以下输出 –
+-------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------------+-------------+------+-----+---------+-------+
| StudentId | int(11) | YES | | NULL | |
| StudentName | varchar(30) | YES | | NULL | |
+-------------+-------------+------+-----+---------+-------+
2行受影响(0.00秒)
下面是在列StudentId上设置自动增量的查询 –
mysql> alter table forgetToSetAutoIncrementDemo modify column StudentId int NOT NULL
AUTO_INCREMENT PRIMARY KEY;
查询成功,0行受影响(2.12秒)
记录:0 重复:0 警告:0
现在再次检查表描述,自动增加列已成功添加 –
mysql> desc forgetToSetAutoIncrementDemo;
这将产生以下输出 –
+-------------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------+-------------+------+-----+---------+----------------+
| StudentId | int(11) | NO | PRI | NULL | auto_increment |
| StudentName | varchar(30) | YES | | NULL | |
+-------------+-------------+------+-----+---------+----------------+
2行受影响(0.00秒)
下面是使用insert命令将一些记录插入表的查询 –
mysql> insert into forgetToSetAutoIncrementDemo(StudentName) values('Larry');
查询成功,1行受影响(0.16秒)
mysql> insert into forgetToSetAutoIncrementDemo(StudentName) values('Chris');
查询成功,1行受影响(0.13秒)
mysql> insert into forgetToSetAutoIncrementDemo(StudentName) values('Robert');
查询成功,1行受影响(0.17秒)
下面是使用select语句显示表中所有记录的查询 –
mysql> select * from forgetToSetAutoIncrementDemo;
这将显示StudentID作为自动增量的以下输出 –
+-----------+-------------+
| StudentId | StudentName |
+-----------+-------------+
| 1 | Larry |
| 2 | Chris |
| 3 | Robert |
+-----------+-------------+
3行受影响(0.00秒)
阅读更多:MySQL 教程
极客教程