Anda harus membaginya menjadi 2 operasi.
START TRANSACTION;
UPDATE table1 SET id = id + 1 WHERE id >= 3 order by id DESC;
INSERT INTO table1 (id, value) VALUES (3, 300);
COMMIT;
Perhatikan bahwa Anda memerlukan order by
dalam pernyataan pembaruan, jadi itu akan dimulai dengan id tertinggi terlebih dahulu.
Ide lain adalah mendeklarasikan id
sebagai decimal(10,1)
dan masukkan nilai 2.5
sebagai id di antara 2 dan 3.