sql >> Databasteknik >  >> RDS >> Mysql

MySQL-syntax för att infoga en ny rad i mittraderna?

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.



  1. Använda PostgreSQL logisk replikering för att upprätthålla en alltid uppdaterad läs-/skriv-TEST-server

  2. Får NoClassDefFoundError när jag försöker använda Proguard och SQLcipher i Android

  3. Hur man automatiskt uppdaterar data i databasen i PHP

  4. Hämtar de senast infogade ID:n för flera rader