aşağıdaki tabloda bir göz edin:postgres: kısıtı çek ve boş değerler
name | x | y
---------+-----+------
foo | 3 | 5
bar | 45 | 99
foobar | 88 |
barfoo | 0 | 45
Ben bir kısıtlama KONTROL (y> x) eklemek istiyorum, ama bu besbelli o tarafından ihlal edilmektedir nedeniyle başarısız olur satır 'foobar'.
Aşağıdakileri söyleyen bir kısıtlama nasıl oluştururum: (y> x), ancak yalnızca y boş değil mi?
Bu sadece gerekli değildir null değerlendirir beri satır filanca kısıtlamayı ihlal etmez çünkü senaryoda olduğu gibi
Sizin kısıt Slayt (y> x) çalışacak. PostgreSQL kılavuzundan alıntı: * Kontrol ifadesinin doğru veya null değerine göre değerlendirildiğinde bir kontrol sınırlaması sağlandığına dikkat edilmelidir. Çoğu ifade, herhangi bir işlenenin boş olması durumunda boş değere değerlendireceğinden, kısıtlı sütunlarda boş değerleri engellemez. * (Http://www.postgresql.org/docs/8.1/static/ddl-constraints.html) –