U moet het in 2 bewerkingen splitsen.
START TRANSACTION;
UPDATE table1 SET id = id + 1 WHERE id >= 3 order by id DESC;
INSERT INTO table1 (id, value) VALUES (3, 300);
COMMIT;
Merk op dat je de order by
. nodig hebt in de update-instructie, dus deze begint eerst met de hoogste id's.
Een ander idee zou zijn om id
. te declareren als decimal(10,1)
en voeg waarde in 2.5
als id tussen 2 en 3.