मैं मानक MySQL के साथ ऐसा करने का कोई तरीका नहीं सोच सकता।
आप MySQL Proxy के लिए एक प्लगइन लिख सकते हैं , जो विभिन्न सर्वरों पर पैरेंट और चाइल्ड टेबल के बीच संदर्भात्मक अखंडता का प्रबंधन करता है:
-
इंटरसेप्ट
INSERTऔरUPDATEचाइल्ड टेबल के खिलाफ पैरेंट तालिका में पंक्ति मिलान के लिए क्वेरी। विफलINSERT/UPDATEअगर पैरेंट टेबल में कोई मैच नहीं मिला। -
इंटरसेप्ट
DELETEमूल तालिका के खिलाफ। चाइल्ड टेबल में आश्रित पंक्तियों के लिए क्वेरी। विफलDELETEयदि कोई आश्रित पंक्तियाँ चाइल्ड टेबल में पाई जाती हैं। यदि बाधा का उद्देश्य कैस्केडिंग व्यवहार का समर्थन करना है, तो असफल होने के बजाय ऐसा करें। -
इंटरसेप्ट
UPDATEमूल तालिका के खिलाफ। यदि अद्यतन के भाग के रूप में प्राथमिक कुंजी मान बदल रहा है, तो चाइल्ड टेबल में पाई जाने वाली आश्रित पंक्तियों के लिए क्वेरी करें। विफलUPDATEयदि कोई आश्रित पंक्तियाँ चाइल्ड टेबल में पाई जाती हैं। यदि बाधा का उद्देश्य कैस्केडिंग व्यवहार का समर्थन करना है, तो असफल होने के बजाय ऐसा करें।
ध्यान दें कि आपको अपने MySQL प्रॉक्सी प्लगइन में संदर्भात्मक अखंडता बाधाओं के बारे में जानकारी रखनी होगी (या संबंधों को रिकॉर्ड करने वाले अपने प्लगइन के लिए एक कस्टम कॉन्फ़िगरेशन फ़ाइल लिखें)। आप पारंपरिक FOREIGN KEY का उपयोग नहीं कर सकते हैं MySQL इंस्टेंस में ऐसी बाधाओं को घोषित करने के लिए सिंटैक्स।