sql >> Database teknologi >  >> RDS >> SQLite

Simuler ORDER BY i SQLite UPDATE for at håndtere entydighedsbegrænsning

Du har ret i, at problemet opstår, fordi SQLite kontrollerer begrænsningerne efter hver rækkeopdatering og ikke ved slutningen af ​​sætningen eller slutningen af ​​transaktionen.

Jeg ser denne løsning på problemet (med at SQLite ikke har implementeret UPDATE korrekt). Forudsat at priority kolonnen ikke har nogen negative værdier, vi kan bruge dem (negative værdier) som midlertidige for at undgå UNIQUE begrænsningsfejl:

UPDATE table1 SET priority = - (priority + 1) WHERE priority > 1 ;

UPDATE table1 SET priority = - priority WHERE priority < 0 ;



  1. 5 måder at kontrollere, om der findes en tabel i PostgreSQL

  2. Sådan tilføjer du tid til en Datetime-værdi i MySQL

  3. Linq to Entities Group By (OUTER APPLY) oracle 11.2.0.3.0 understøtter ikke gælder

  4. Få den sidste dag i måneden i SQL