Bạn sẽ phải chia nó thành 2 hoạt động.
START TRANSACTION;
UPDATE table1 SET id = id + 1 WHERE id >= 3 order by id DESC;
INSERT INTO table1 (id, value) VALUES (3, 300);
COMMIT;
Lưu ý rằng bạn cần order by trong câu lệnh cập nhật, vì vậy nó sẽ bắt đầu với id cao nhất trước.
Một ý tưởng khác là khai báo id dưới dạng decimal(10,1) và chèn giá trị 2.5 dưới dạng id trong khoảng từ 2 đến 3.