Natomiast CHECK
ograniczenie oblicza wyrażenie oparte na pojedynczym wierszu tabeli, EXCLUDE
ograniczenie ocenia porównanie dwóch wierszy w tabeli. Pomyśl o tym jak o uogólnionym UNIQUE
ograniczenie:zamiast „żadne dwa wiersze nie mogą być równe”, możesz powiedzieć „żadne dwa wiersze się nie pokrywają”, a nawet „żadne dwa wiersze nie mogą być różne ".
Aby to osiągnąć bez sprawdzania każdej możliwej kombinacji wartości, potrzebuje odpowiedniej struktury indeksu, która pozwala znaleźć możliwe naruszenia podczas wstawiania lub aktualizowania wiersza. Oto, co gist
część deklaracji odnosi się do:określonego typu indeksu które mogą być użyte do przyspieszenia operacji innych niż równość.
Pozostała część deklaracji to samo ograniczenie:c
jest testowaną kolumną, a &&
jest operatorem, który nie może zwracać wartości true dla żadnej pary wierszy. W tym przypadku &&
to operator "overlaps" wymieniony na stronie podręcznika operatorów geometrycznych .
Podsumowując, ograniczenie EXCLUDE USING gist (c WITH &&)
przekłada się na "brak dwóch wartości c
muszą zachodzić na siebie (dokładniej A.c && B.c
musi zwracać wartość false lub null dla wszystkich odrębnych wierszy A
i B
) i użyj gist
indeks, aby monitorować to ograniczenie".