sql >> Database >  >> RDS >> SQLite

Simuleer ORDER BY in SQLite UPDATE om de uniciteitsbeperking aan te pakken

Je hebt gelijk dat het probleem zich voordoet omdat SQLite de beperkingen controleert na elke rij-update en niet aan het einde van de instructie of het einde van de transactie.

Ik zie deze tijdelijke oplossing voor het probleem (van SQLite die UPDATE niet heeft geïmplementeerd) correct). Ervan uitgaande dat de priority kolom heeft geen negatieve waarden, we kunnen ze (negatieve waarden) als tijdelijk gebruiken om de UNIQUE te vermijden beperkingsfouten:

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

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



  1. Alle controlebeperkingen in SQL Server-database inschakelen - SQL Server / TSQL-zelfstudie deel 88

  2. De naam van een tabel in SQL Server wijzigen (T-SQL)

  3. Rijen dynamisch in kolommen draaien in Oracle

  4. SQLDeveloper geeft geen tabellen weer onder verbindingen waar tabellen staan