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

Apa yang dimaksud dengan batasan pengecualian `KECUALIKAN MENGGUNAKAN Gist (c WITH &&)`?

Sedangkan CHECK kendala mengevaluasi ekspresi berdasarkan satu baris tabel, sebuah EXCLUDE kendala mengevaluasi perbandingan dua baris dalam tabel. Anggap saja seperti UNIQUE yang digeneralisasikan batasan:alih-alih "tidak ada dua baris yang bisa sama", Anda dapat mengatakan hal-hal seperti "tidak ada dua baris yang tumpang tindih", atau bahkan "tidak ada dua baris yang dapat berbeda ".

Untuk mencapai ini tanpa memeriksa setiap kemungkinan kombinasi nilai, diperlukan struktur indeks yang sesuai yang memungkinkannya menemukan kemungkinan pelanggaran saat Anda menyisipkan atau memperbarui baris. Ini dia gist bagian dari deklarasi mengacu pada:jenis indeks tertentu yang dapat digunakan untuk mempercepat operasi selain kesetaraan.

Sisa dari deklarasi adalah batasan itu sendiri:c adalah kolom yang sedang diuji, dan && adalah operator yang tidak boleh mengembalikan nilai true untuk setiap pasangan baris. Dalam hal ini, && adalah operator "tumpang tindih" seperti yang tercantum pada halaman manual operator geometris .

Jadi satukan, batasan EXCLUDE USING gist (c WITH &&) diterjemahkan menjadi "tidak ada dua nilai c harus saling tumpang tindih (lebih tepatnya, A.c && B.c harus mengembalikan false atau null untuk semua baris yang berbeda A dan B ), dan harap gunakan gist indeks untuk memantau kendala ini".




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. LIMIT yang dikelompokkan di PostgreSQL:tampilkan N baris pertama untuk setiap grup?

  2. Akses server PostgreSQL dari LAN

  3. Bagaimana cara menghitung hari kecuali hari Minggu antara dua tanggal di Postgres?

  4. Bagaimana menerapkan jumlah Oracle (berbeda) di atas partisi di Postgres

  5. Ubah pengkodean basis data PostgreSql