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".