Budete to muset rozdělit na 2 operace.
START TRANSACTION;
UPDATE table1 SET id = id + 1 WHERE id >= 3 order by id DESC;
INSERT INTO table1 (id, value) VALUES (3, 300);
COMMIT;
Všimněte si, že potřebujete order by
v prohlášení o aktualizaci, takže nejprve bude začínat nejvyššími ID.
Dalším nápadem by bylo deklarovat id
jako decimal(10,1)
a vložte hodnotu 2.5
jako id mezi 2 a 3.