假设我有一个数据库表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)
如何做到?
答案 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