PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Какво означава ограничението за изключване `EXCLUDE USING gist (c С &&)`?

Докато CHECK ограничението оценява израз въз основа на един ред от таблицата, EXCLUDE ограничение оценява сравнение на два реда в таблицата. Мислете за това като за обобщен UNIQUE ограничение:вместо „нито два реда не могат да бъдат еднакви“, можете да кажете неща като „нито два реда не се припокриват“ или дори „нито два реда не могат да бъдат различни ".

За да постигне това, без да проверява всяка възможна комбинация от стойности, той се нуждае от подходяща структура на индекса, която му позволява да намира възможни нарушения, когато вмъквате или актуализирате ред. Това е gist част от декларацията се отнася до:определен тип индекс което може да се използва за ускоряване на операции, различни от равенството.

Останалата част от декларацията е самото ограничение:c е колоната, която се тества, и && е операторът, който не трябва да връща true за никоя двойка редове. В този случай, && е операторът "припокриване" както е посочено на страницата с ръководство за геометрични оператори .

Така събрано, ограничението EXCLUDE USING gist (c WITH &&) се превежда като „няма две стойности на c трябва да се припокриват (по-точно A.c && B.c трябва да върне false или null за всички отделни редове A и B ), и моля, използвайте gist индекс за наблюдение на това ограничение".




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да сравним датите в полетата за дата и час в Postgresql?

  2. Как да активирам функцията за профилиране на PostgreSQL?

  3. PostgreSQL, Разменете данните на определена колона в два реда

  4. PostgreSQL psql команден ред показва колона bytea

  5. Извличане на стойност на xml таг в PostgreSQL