sql >> Databáze >  >> RDS >> PostgreSQL

Co znamená omezení vyloučení `VYLOUČIT POMOCÍ Gist (c WITH &&)`?

Zatímco CHECK omezení vyhodnotí výraz založený na jediném řádku tabulky, EXCLUDE omezení vyhodnocuje porovnání dvou řádků v tabulce. Představte si to jako zobecněné UNIQUE omezení:místo „žádné dva řádky se nemohou rovnat“ můžete říci věci jako „žádné dva řádky se nepřekrývají“ nebo dokonce „žádné dva řádky se nemohou lišit ".

."

Aby toho bylo možné dosáhnout bez kontroly každé možné kombinace hodnot, potřebuje vhodnou strukturu indexu, která mu umožní najít možná porušení při vkládání nebo aktualizaci řádku. Toto je gist část prohlášení odkazuje na:konkrétní typ indexu které lze použít k urychlení operací jiných než je rovnost.

Zbytek deklarace je samotné omezení:c je testovaný sloupec a && je operátor, který nesmí vracet true pro žádný pár řádků. V tomto případě && je operátor "overlaps" jak je uveden na stránce manuálu geometrických operátorů .

Takže dohromady, omezení EXCLUDE USING gist (c WITH &&) se překládá jako „žádné dvě hodnoty c se musí navzájem překrývat (přesněji A.c && B.c musí vrátit hodnotu false nebo null pro všechny odlišné řádky A a B ) a použijte prosím gist index pro sledování tohoto omezení."




  1. PGSQL není načteno v PHP 5.3 Windows pod IIS

  2. ZKONTROLUJTE Omezení na serveru SQL Server

  3. STR_TO_DATE() Příklady – MySQL

  4. nelze otevřít, protože jde o verzi 706. Tento server podporuje verzi 662 a starší. Cesta na nižší verzi není podporována