PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Consultas SQL Sub na restrição de verificação


Não há suporte para olhar além da linha atual em uma restrição CHECK.

http://www.postgresql.org/docs/9.1/interactive/sql-createtable.html diz:

Uma restrição de verificação especificada como uma restrição de coluna deve fazer referência apenas ao valor dessa coluna, enquanto uma expressão que aparece em uma restrição de tabela pode fazer referência a várias colunas.

Atualmente, as expressões CHECK não podem conter subconsultas nem fazer referência a variáveis ​​que não sejam colunas da linha atual.

Existem boas razões para essa restrição, mas se você gosta de fazer malabarismos com tochas flamejantes enquanto anda de monociclo no trânsito pesado, pode subverter a restrição usando funções. As situações em que isso não volte para morder você é raro; seria muito mais seguro impor a invariável no código do gatilho.

http://www.postgresql.org/docs/9.1/interactive/triggers.html