SQLite
 sql >> Baza danych >  >> RDS >> SQLite

Symuluj ORDER BY w SQLite UPDATE, aby poradzić sobie z ograniczeniem unikalności

Masz rację, że problem pojawia się, ponieważ SQLite sprawdza ograniczenia po każdej aktualizacji wiersza, a nie na końcu instrukcji lub transakcji.

Widzę to obejście problemu (z SQLite nie zaimplementowanym UPDATE prawidłowo). Zakładając, że priority kolumna nie ma żadnych wartości ujemnych, możemy ich użyć (wartości ujemne) jako tymczasowe, aby uniknąć UNIQUE błędy ograniczeń:

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

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



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak działa SQLite Max()

  2. Jak pomijać wiersze, które naruszają ograniczenia podczas wstawiania danych do SQLite

  3. jak uzyskać obraz z rysowalnego zgodnie z ich nazwami w bazie danych sqlite, a następnie wyświetlić go w widoku listy?

  4. Umieszczanie danych kursora w tablicy

  5. jak zaimplementować dziedziczenie tabel w GreenDao