Proszę spojrzeć na poniższą tabelą:postgres: Sprawdź ograniczenia i wartości null
name | x | y
---------+-----+------
foo | 3 | 5
bar | 45 | 99
foobar | 88 |
barfoo | 0 | 45
chcę dodać ograniczenia CHECK (y> x), ale to oczywiście nie powiedzie się z powodu, że jest łamane przez wiersz "foobar".
Jak utworzyć ograniczenie, które mówi: check (y> x), ale tylko jeśli y nie jest pusta?
To nie jest po prostu konieczne. Cytat z podręcznika PostgreSQL: * Należy zauważyć, że ograniczenie sprawdzające jest spełnione, jeśli wyrażenie check ma wartość true lub wartość pustą. Ponieważ większość wyrażeń będzie oceniać wartość pustą, jeśli dowolny operand ma wartość null, nie zapobiegnie wartościom pustym w ograniczonych kolumnach. * (Http://www.postgresql.org/docs/8.1/static/ddl-constraints.html) –