CHECK
बाधाएं वर्तमान में अन्य तालिकाओं का संदर्भ नहीं दे सकती हैं। मैनुअल:
वर्तमान में, CHECK
अभिव्यक्तियों में उपश्रेणियाँ नहीं हो सकती हैं और न ही वर्तमान पंक्ति के स्तंभों के अलावा अन्य चरों को संदर्भित किया जा सकता है।
एक तरीका है @Wolph द्वारा प्रदर्शित ट्रिगर का उपयोग करना।
एक स्वच्छ बिना ट्रिगर के समाधान :अनावश्यक कॉलम जोड़ें और उन्हें FOREIGN KEY
. में शामिल करें बाधाएं , जो संदर्भात्मक अखंडता को लागू करने के लिए पहली पसंद हैं। विस्तृत निर्देशों के साथ dba.SE पर संबंधित उत्तर:
- बाधाओं को लागू करना "दो टेबल दूर"
एक अन्य विकल्प "नकली" एक IMMUTABLE
. होगा समारोह जाँच करना और उसका उपयोग CHECK
. में करना बाधा पोस्टग्रेज इसकी अनुमति देगा, लेकिन संभावित चेतावनियों से अवगत रहें। सबसे अच्छा यह है कि एक NOT VALID
बाधा देखें:
- डंप को पुनर्स्थापित करते समय सभी बाधाओं और तालिका जांच को अक्षम करें