MySQL – 如何修复一个带有已删除行的自动增量字段(从1,2,3,4,5到1,3,5)。现在,我们想让它成为1,2,3

MySQL – 如何修复一个带有已删除行的自动增量字段(从1,2,3,4,5到1,3,5)。现在,我们想让它成为1,2,3

首先,让我们创建一个表 −

mysql> create table DemoTable1955
   (
   UserId int NOT NULL AUTO_INCREMENT
   ,
   PRIMARY KEY(UserId)
   );
Query OK, 0 rows affected (0.00 sec)

使用insert命令在表中插入一些记录 −

mysql> insert into DemoTable1955 values();
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1955 values();
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1955 values();
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1955 values();
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1955 values();
Query OK, 1 row affected (0.00 sec)

使用select语句显示表中的所有记录 −

mysql> select * from DemoTable1955;

这将产生以下输出 −

+--------+
| UserId |
+--------+
|      1 |
|      2 |
|      3 |
|      4 |
|      5 |
+--------+
5 rows in set (0.00 sec)

这是从表中删除行的查询 −

mysql> delete from DemoTable1955 where UserId  IN(2,4);
Query OK, 2 rows affected (0.00 sec)

现在检查表中的记录 −

mysql> select * from DemoTable1955;

这将产生以下输出 −

+--------+
| UserId |
+--------+
|      1 |
|      3 |
|      5 |
+--------+
3 rows in set (0.00 sec)

这是修复已删除行的自动递增字段(1,2,3,4,5到1,3,5)的查询。下面的查询将使该列从1开始,如1,2,3 −

mysql> update DemoTable1955
   set UserId = (@increment_value := @increment_value+ 1)
   order by UserId;
Query OK, 2 rows affected (0.00 sec)
Rows matched: 3  Changed: 2 Warnings: 0

让我们再次检查表中的记录 −

mysql> select * from DemoTable1955;

这将产生以下输出 −

+--------+
| UserId |
+--------+
|      1 |
|      2 |
|      3 |
+--------+
3 rows in set (0.00 sec)

阅读更多:MySQL 教程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程