每当我们重新编号时,就有可能出现问题。需要为列声明唯一的ID。
在MySQL 5.6 InnoDB版本中,我们可以通过在INSERT语句中包含ID列来重用auto_increment ID,并可以提供所需的任何特定值。
情况如下-
每当我们删除编号最高的ID
每当我们启动和停止MySQL服务器时
每当我们插入新记录时
使用auto_increment变量的ID自动递增示例。
create table UniqueAutoId -> ( -> id int auto_increment, -> Unique(id) -> );
将记录插入表中。
insert into UniqueAutoId values(); insert into UniqueAutoId values(); insert into UniqueAutoId values(); insert into UniqueAutoId values(); insert into UniqueAutoId values();
显示所有记录。
select *from UniqueAutoId;
以下是输出。
+----+ | id | +----+ | 1 | | 2 | | 3 | | 4 | | 5 | +----+ 5 rows in set (0.00 sec)
要删除记录,我们使用了DELETE语句。在这里,我们删除id = 5;
DELETE from UniqueAutoId where id=5;
显示所有记录。
select *from UniqueAutoId;
以下是输出。
+----+ | id | +----+ | 1 | | 2 | | 3 | | 4 | +----+ 4 rows in set (0.00 sec)
让我们再次从表中删除一条记录。
delete from UniqueAutoId where id=2;
再次,显示表中的记录。
select *from UniqueAutoId;
以下是输出。
+----+ | id | +----+ | 1 | | 3 | | 4 | +----+ 3 rows in set (0.00 sec
以上导致碎片。