2つの操作に分割する必要があります。
START TRANSACTION;
UPDATE table1 SET id = id + 1 WHERE id >= 3 order by id DESC;
INSERT INTO table1 (id, value) VALUES (3, 300);
COMMIT;
order by
が必要であることに注意してください updateステートメントでは、最も高いIDから最初に開始されます。
もう1つのアイデアは、id
を宣言することです。 decimal(10,1)
として 値2.5
を挿入します 2と3の間のIDとして。