sql >> Base de Datos >  >> RDS >> PostgreSQL

SQL Subconsultas en restricción de verificación

No se admite mirar más allá de la fila actual en una restricción CHECK.

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

Una restricción de comprobación especificada como restricción de columna debe hacer referencia únicamente al valor de esa columna, mientras que una expresión que aparece en una restricción de tabla puede hacer referencia a varias columnas.

Actualmente, las expresiones CHECK no pueden contener subconsultas ni hacer referencia a variables que no sean columnas de la fila actual.

Hay buenas razones para esta restricción, pero si te gusta hacer malabarismos con antorchas encendidas mientras conduces un monociclo a través del tráfico pesado, puedes subvertir la restricción usando funciones. Las situaciones en las que esto no vuelve a morderte eres raro; en su lugar, sería mucho más seguro imponer el invariante en el código de activación.

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