添加新行后如何在数据库表中自动订购ID?

时间:2018-08-07 07:13:04

标签: mysql sql database phpmyadmin xampp

假设我有一个数据库表services,其中包含一些数据,例如A(id = 1),D(id = 2),F(id = 3) ,L(id = 4),M(id = 5)。

现在,我想在B之后的service表中插入另一个服务A,并希望自动排序其他数据id

因此service表的新数据为A(id = 1),B(id = 2),D(id = 3),{{ 1}}(id = 4),F(id = 5),L(id = 6)

如何做到?

1 个答案:

答案 0 :(得分:0)

使用MySQL变量。

例如,如果您拥有:

create table services (
  name varchar(10),
  id int
);

insert into services (name, id) values ('A', 1);
insert into services (name, id) values ('D', 2);
insert into services (name, id) values ('F', 3);
insert into services (name, id) values ('L', 4);
insert into services (name, id) values ('M', 5);

然后插入新行B

insert into services (name, id) values ('B', null);

然后,您可以使用变量更新ID:

set @newid = 0;
update services set id = (@newid := @newid + 1)
order by name;

结果:

name        id           
----------  --
A           1            
B           2            
D           3            
F           4            
L           5            
M           6