PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Kiedy Postgres sprawdza unikalne ograniczenia?

Postgres postanawia sprawdzić ograniczenia typu IMMEDIATELY w innym czasie niż proponowany w standardzie SQL.

W szczególności dokumentacja SET CONSTRAINTS stany (podkreślenie moje):

Postgres decyduje się na wykonanie tego zapytania przy użyciu planu, który powoduje tymczasową kolizję dla sort_order i NATYCHMIAST zawodzi. Pamiętaj, że oznacza to, że dla tego samego schematu i tych samych danych to samo zapytanie może zadziałać lub zakończyć się niepowodzeniem w zależności od planu wykonania.

Będziesz musiał ustawić ograniczenie DEFERRABLE lub DEFERRABLE INITIALLY DEFERRED , co opóźnia weryfikację ograniczenia do końca transakcji lub do momentu, w którym instrukcja SET CONSTRAINTS ... IMMEDIATE jest wykonywany.

Dodatek z komentarza @HansGinzel:




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Koszt bezpłatnej reklamy PostgreSQL

  2. TemplateSyntaxError:wyłapano ImportError podczas renderowania:nie można zaimportować nazw narzędzi

  3. Jak Cotd() działa w PostgreSQL

  4. Oracle odpowiednik Postgresa DISTINCT ON?

  5. Mac OSX Lion Postgres nie akceptuje połączeń w /tmp/.s.PGSQL.5432