Du måste dela upp det i 2 operationer.
START TRANSACTION;
UPDATE table1 SET id = id + 1 WHERE id >= 3 order by id DESC;
INSERT INTO table1 (id, value) VALUES (3, 300);
COMMIT;
Observera att du behöver order by
i uppdateringssatsen, så den börjar med de högsta ID:n först.
En annan idé skulle vara att deklarera id
som decimal(10,1)
och infoga värdet 2.5
som id mellan 2 och 3.