Предположим, что у меня есть services
таблицы базы данных с некоторыми данными, такими как A
(id = 1), D
(id = 2), F
(id = 3), L
(id = 4), M
(id = 5) в MySQL.
Теперь я хочу вставить другую службу B
в эту service
таблицу после A
а также выполнить автоматический заказ другого id
данных.
Таким образом, новые данные таблицы service
: A
(id = 1), B
(id = 2), D
(id = 3), F
(id = 4), L
(id = 5), M
(id = 6)
Как это сделать?
Используйте переменную 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);
Затем вы можете обновить идентификаторы с помощью переменной:
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