bitte einen Blick auf die folgende Tabelle haben:Postgres: Bedingungsprüfung und Nullwerte
name | x | y
---------+-----+------
foo | 3 | 5
bar | 45 | 99
foobar | 88 |
barfoo | 0 | 45
Ich möchte eine Einschränkung CHECK (y> x) hinzufügen, aber dies wird offensichtlich aufgrund nicht durch die verletzt Zeile "Foobar".
Wie erstelle ich eine Einschränkung, die sagt: check (y> x), aber nur wenn y nicht null?
ist einfach nicht notwendig auf Null auswertet. Zitat aus dem PostgreSQL-Handbuch: * Es sollte beachtet werden, dass eine Prüfbedingung erfüllt ist, wenn der Prüfausdruck als wahr oder als Nullwert ausgewertet wird. Da die meisten Ausdrücke auf den Nullwert ausgewertet werden, wenn ein Operand null ist, verhindern sie keine Nullwerte in den eingeschränkten Spalten. * (Http://www.postgresql.org/docs/8.1/static/ddl-constraints.html) –