sql >> Databáze >  >> RDS >> SQLite

Simulujte ORDER BY v SQLite UPDATE, abyste zvládli omezení jedinečnosti

Máte pravdu, že se problém objevuje, protože SQLite kontroluje omezení po každé aktualizaci řádku a ne na konci příkazu nebo na konci transakce.

Vidím toto řešení problému (to, že SQLite nemá implementováno UPDATE správně). Za předpokladu, že priority sloupec neobsahuje žádné záporné hodnoty, můžeme je použít (záporné hodnoty) jako dočasné, abychom se vyhnuli UNIQUE chyby omezení:

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

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



  1. jak předřadit řetězec před sekvencí generovanou postgresql?

  2. Jak zjistit, že transakce již byla zahájena?

  3. Failover pro PostgreSQL Replication 101

  4. Zkontrolujte, zda tabulka obsahuje sloupec TIMESTAMP na serveru SQL pomocí OBJECTPROPERTY()