PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Co oznacza ograniczenie wykluczenia „WYKLUCZ UŻYWAJĄC gist (c WITH &&)”?

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




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Złe kodowanie między Springiem a PostgreSQL

  2. paginacja i filtrowanie na bardzo dużej tabeli w postgresql (paginacja zestawu kluczy?)

  3. SELECT COUNT(*) - zwraca 0 wraz z pogrupowanymi polami, jeśli nie ma pasujących wierszy

  4. Wyszukiwanie pełnotekstowe Postgres:jak wyszukiwać wiele słów w wielu polach?

  5. Jak prawidłowo wstawić wiele wierszy do PG za pomocą węzła postgres?