PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Kapan Postgres memeriksa batasan unik?

Postgres memutuskan untuk memeriksa batasan tipe IMMEDIATELY pada waktu yang berbeda dari yang diusulkan dalam standar SQL.

Secara khusus, dokumentasi untuk SET CONSTRAINTS menyatakan (penekanan milik saya):

Postgres memilih untuk mengeksekusi kueri ini menggunakan rencana yang menghasilkan tabrakan sementara untuk sort_order dan SEGERA gagal. Perhatikan bahwa artinya untuk skema yang sama dan data yang sama, kueri yang sama dapat berfungsi atau gagal bergantung pada rencana eksekusi.

Anda harus membuat batasan DEFERRABLE atau DEFERRABLE INITIALLY DEFERRED , yang menunda verifikasi kendala hingga akhir transaksi atau sampai pada titik di mana pernyataan SET CONSTRAINTS ... IMMEDIATE dijalankan.

Tambahan dari komentar @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. Indeks dan upser unik parsial PostgreSQL

  2. Praktik terbaik menangani hubungan antar tabel di Spring Data R2dbc

  3. @Tailable(spring-data-reactive-mongodb) setara di spring-data-r2dbc

  4. JodaTime dengan nilai JPA, PostgreSQL, dan NULL

  5. Hitung jumlah pembaruan