PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Кога Postgres проверява уникалните ограничения?

Postgres решава да провери ограничения от тип IMMEDIATELY в различно време от предложеното в SQL стандарта.

По-конкретно, документацията за SET CONSTRAINTS заявява (подчертаването е мое):

Postgres избира да изпълни тази заявка, използвайки план, който води до временен сблъсък за sort_order иВЕДНАГА не успява. Имайте предвид, че това означава, че за една и съща схема и едни и същи данни една и съща заявка може да работи или да се провали в зависимост от плана за изпълнение.

Ще трябва да направите ограничението DEFERRABLE или DEFERRABLE INITIALLY DEFERRED , което забавя проверката на ограничението до края на транзакцията или до момента, в който се появява израз SET CONSTRAINTS ... IMMEDIATE се изпълнява.

Допълнение от коментара на @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. Създаване на Gin индекс с триграма (gin_trgm_ops) в Django модел

  2. postgres функции и транзакции с BEGIN

  3. Колко записа мога да съхранявам в 5 MB PostgreSQL на Heroku?

  4. PostgreSQL:Защо тази заявка не използва моя индекс?

  5. Вложени транзакции в postgresql 8.2?