कृपया निम्न तालिका पर एक नजर है:postgres: बाधा जांच और शून्य मान
name | x | y
---------+-----+------
foo | 3 | 5
bar | 45 | 99
foobar | 88 |
barfoo | 0 | 45
मैं एक बाधा जांच (y> x) जोड़ना चाहते हैं, लेकिन यह स्पष्ट रूप से की वजह से असफल हो जायेगी यह द्वारा उल्लंघन किया जाता है पंक्ति 'foobar'।
मैं एक बाधा कैसे बना सकता हूं जो कहता है: चेक (y> x), लेकिन केवल अगर y शून्य नहीं है?
यह केवल आवश्यक नहीं है मूल्यांकन करता है। PostgreSQL मैन्युअल से उद्धरण: * यह ध्यान दिया जाना चाहिए कि चेक अभिव्यक्ति संतुष्ट है अगर चेक अभिव्यक्ति सही या शून्य मान का मूल्यांकन करती है। चूंकि अधिकांश अभिव्यक्ति शून्य मान पर मूल्यांकन करेंगे यदि कोई ऑपरेंड शून्य है, तो वे बाधित कॉलम में शून्य मानों को नहीं रोकेंगे। * (Http://www.postgresql.org/docs/8.1/static/ddl-constraints.html) –