O que significa a exclusão restrição `EXCLUIR USANDO essência (c COM &&)` significa?

votos
2

Do documento PostgreSQL

restrições de exclusão garantir que se houver duas linhas são comparadas nas colunas especificadas ou expressões que utilizam os operadores especificados, pelo menos, uma dessas comparações operador irá retornar falso ou nulo. A sintaxe é:

CREATE TABLE circles (
    c circle,
    EXCLUDE USING gist (c WITH &&)
);

Fiquei me perguntando o que EXCLUDE USING gist (c WITH &&)isso significa? Em particular, gist(), c WITH &&e EXCLUDE USING.

Ele pode ser reescrita em termos de check? Obrigado.

Publicado 09/07/2018 em 12:43
fonte usuário
Em outras línguas...                            


1 respostas

votos
1

Considerando a CHECKrestrição avalia uma expressão baseada em uma única linha da tabela, uma EXCLUDErestrição avalia uma comparação de duas linhas na tabela. Pense nisso como um generalizada UNIQUErestrição: em vez de "não há duas linhas pode ser igual", você pode dizer coisas como "não há duas linhas se sobrepõem", ou mesmo "não há duas linhas pode ser diferente ".

A fim de conseguir isso sem verificar todas as combinações possíveis de valores, ele precisa de uma estrutura de índice apropriado que lhe permite encontrar possíveis violações Ao inserir ou atualizar uma linha. Isto é o que a gistparte da declaração refere-se a: um determinado tipo de índice que pode ser usado para acelerar a outros que a igualdade operações.

O restante da declaração é a restrição si: cé a coluna a ser testado, e &&é o operador que não deve voltar verdadeiro para qualquer par de linhas. Neste caso, &&é o operador "sobreposições" , conforme listado na página de manual do operador geométrica .

Então, juntos, a restrição EXCLUDE USING gist (c WITH &&)se traduz em "há dois valores de cdeve se sobrepor uns aos outros (mais precisamente, A.c && B.cdeve retornar falso ou nulo para todas as linhas distintas Ae B), e use um gistíndice para monitorar essa restrição".

Respondeu 09/07/2018 em 13:15
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more