2012-11-22 15 views
7

मेरे पास एक डीबी तालिका है जो myISAM है, जो पूर्ण टेक्स्ट खोज के लिए उपयोग की जाती है। मेरे पास एक टेबल भी है जो InnoDB है। मेरे पास मेरी आईआईएसएएम तालिका में एक कॉलम है जो मैं अपनी इनो डीबी तालिका में एक कॉलम से मेल खाना चाहता हूं। क्या यह किया जा सकता है? मैं इसे काम करने के लिए प्रतीत नहीं कर सकता!myISAM और InnoDB तालिकाओं के लिए विदेशी कुंजी

उत्तर

11

http://dev.mysql.com/doc/refman/5.0/en/innodb-foreign-key-constraints.html

विदेशी कुंजी परिभाषाएँ निम्नलिखित शर्तों के अधीन हैं:

दोनों तालिकाओं InnoDB तालिकाओं होना चाहिए और वे अस्थायी टेबल नहीं होना चाहिए।

तो, मुझे डर है कि आप जो भी करना चाहते हैं उसे प्राप्त करने में सक्षम नहीं होंगे।

+0

जो मैंने सोचा था। आपके जवाब का धन्यवाद! –

3

मैं आपके डीबी आर्किटेक्चर को बदलने की सलाह दूंगा कि आपके पास लेखन के लिए डेटा अखंडता (सभी इनो डीबी) के साथ डिजाइन किए गए टेबल का एक सेट है, और खोज के लिए डिज़ाइन किया गया दूसरा सेट - संभवतः एक अलग बॉक्स पर, और संभवतः MySQL का उपयोग भी नहीं , लेकिन शायद सोलर या स्फिंक्स जैसे एक खोज सर्वर, जो एक पूर्ण टेक्स्ट MySQL तालिका को बेहतर प्रदर्शन करना चाहिए। फिर आप अपने लेखन डीबी से समय-समय पर अपनी खोज डीबी को पॉप्युलेट कर सकते हैं।

+0

यदि आप अपने ओआरएम में ऐसा करने का कोई तरीका नहीं ढूंढ पाते हैं तो यह 'ट्रिगर' के साथ करना बहुत आसान है। – tadman