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.