如果我忘记设置自动递增怎么办?我可以在 MySQL 中稍后设置它吗?
是的,您可以使用 ALTER table 在稍后设置自动递增。让我们首先创建一个表。在这里,您可以看到,我们没有设置自动递增 -
mysql> create table forgetToSetAutoIncrementDemo -> ( -> StudentId int, -> StudentName varchar(30) -> ); Query OK, 0 rows affected (1.17 sec)
现在检查表描述,没有 auto_increment 列 -
mysql> desc forgetToSetAutoIncrementDemo;
这将产生以下输出 -
+-------------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------------+-------------+------+-----+---------+-------+ | StudentId | int(11) | YES | | NULL | | | StudentName | varchar(30) | YES | | NULL | | +-------------+-------------+------+-----+---------+-------+ 2 rows in set (0.00 sec)
以下是为 StudentId 列设置自动递增的查询 -
mysql> alter table forgetToSetAutoIncrementDemo modify column StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY; Query OK, 0 rows affected (2.12 sec) Records: 0 Duplicates: 0 Warnings: 0
现在再次检查表描述,auto_increment 列已成功添加 -
mysql> desc forgetToSetAutoIncrementDemo;
这将产生以下输出 -
+-------------+-------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------------+-------------+------+-----+---------+----------------+ | StudentId | int(11) | NO | PRI | NULL | auto_increment | | StudentName | varchar(30) | YES | | NULL | | +-------------+-------------+------+-----+---------+----------------+ 2 rows in set (0.00 sec)
以下是使用 insert 命令在表中插入一些记录的查询 -
mysql> insert into forgetToSetAutoIncrementDemo(StudentName) values('Larry'); Query OK, 1 row affected (0.16 sec) mysql> insert into forgetToSetAutoIncrementDemo(StudentName) values('Chris'); Query OK, 1 row affected (0.13 sec) mysql> insert into forgetToSetAutoIncrementDemo(StudentName) values('Robert'); Query OK, 1 row affected (0.17 sec)
以下是使用 select 语句显示表中所有记录的查询 -
mysql> select * from forgetToSetAutoIncrementDemo;
这将产生以下输出,显示 StudentID 作为自动递增 -
+-----------+-------------+ | StudentId | StudentName | +-----------+-------------+ | 1 | Larry | | 2 | Chris | | 3 | Robert | +-----------+-------------+ 3 rows in set (0.00 sec)
广告