si prega di dare un'occhiata alla seguente tabella:postgres: controllo del vincolo e valori nulli
name | x | y
---------+-----+------
foo | 3 | 5
bar | 45 | 99
foobar | 88 |
barfoo | 0 | 45
voglio aggiungere un vincolo CHECK (y> x), ma questo ovviamente non riuscirà a causa viene violata dal riga 'foobar'.
Come si crea un vincolo che dice: check (y> x), ma solo se y non null?
Questo non è semplicemente necessario. Citazione dal manuale di PostgreSQL: * Si noti che un vincolo di verifica è soddisfatto se l'espressione di controllo restituisce true o il valore null. Poiché la maggior parte delle espressioni valuterà il valore null se qualsiasi operando è nullo, non impediranno i valori nulli nelle colonne vincolate. * (Http://www.postgresql.org/docs/8.1/static/ddl-constraints.html) –