मेरे पास घटकों का डेटाबेस है। प्रत्येक घटक एक विशिष्ट प्रकार का है। इसका मतलब है कि एक घटक और एक प्रकार के बीच एक से अधिक संबंध हैं। जब मैं एक प्रकार को हटाता हूं, तो मैं उन सभी घटकों को हटाना चाहता हूं जिनमें उस प्रकार की विदेशी कुंजी है। लेकिन अगर मुझे गलत नहीं लगता है, तो कैस्केड डिलीट घटक हटा दिए जाने पर टाइप को हटा देगा। क्या मैंने वर्णन करने का कोई तरीका है?mysql में डिलीट कैस्केड पर मैं कैसे उपयोग करूं?
उत्तर
यहां आप अपने घटकों की तालिका में शामिल करना चाहते हैं।
CREATE TABLE `components` (
`id` int(10) unsigned NOT NULL auto_increment,
`typeId` int(10) unsigned NOT NULL,
`moreInfo` VARCHAR(32),
-- etc
PRIMARY KEY (`id`),
KEY `type` (`typeId`)
CONSTRAINT `myForeignKey` FOREIGN KEY (`typeId`)
REFERENCES `types` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
)
बस याद रखें कि आप InnoDB स्तोरागे engine उपयोग करने की आवश्यकता: डिफ़ॉल्ट MyISAM भंडारण इंजन विदेशी कुंजी का समर्थन नहीं करता।
आपको अपनी विदेशी कुंजी बाधाओं को डिलीट कैस्केड के रूप में परिभाषित करना होगा।
नोट: आपको इनो डीबी स्टोरेज इंजन का उपयोग करने की आवश्यकता है, वह डिफ़ॉल्ट माइस्सम स्टोरेज इंजन विदेशी कुंजी संबंधों का समर्थन नहीं करता है।
CREATE TABLE `table2` (
`id` int(11) NOT NULL auto_increment,
`name` int(11) NOT NULL,
PRIMARY KEY (`id`),
KEY `ids` (`ids`)
CONSTRAINT `foreign` FOREIGN KEY (`ids`)
REFERENCES `table2` (`ids`) ON DELETE CASCADE ON UPDATE CASCADE
)
उपयोग इस एसक्यूएल
T1, T2 DELETE टी 1 भीतर से पर T1.key = T2.key टी 2 शामिल हों जहां हालत
यह op द्वारा पूछे गए 'CASCADE' कार्यक्षमता का उपयोग नहीं करता है। – displayname
लेकिन यह मौजूदा डेटाबेस संरचना को अद्यतन किए बिना समस्या को हल करता है। –
- 1. MySQL MyISAM स्टोरेज इंजन पर डिलीट कैस्केड का उपयोग कैसे करें?
- 2. "डिलीट कैस्केड" बाधाओं को कैसे जोड़ा जाए?
- 3. स्क्लाइट 3.7.4 में डिलीट कैस्केड काम कैसे करें?
- 4. एसक्यूएल डिलीट कैस्केड पर, किस तरह से विलोपन होता है?
- 5. MySQL विदेशी कुंजी बाधाएं, कैस्केड
- 6. MySQL वर्कबेंच में कैस्केडिंग डिलीट कैसे सेट करें?
- 7. MySQL का डिफ़ॉल्ट ऑन डिलीट व्यवहार क्या है?
- 8. Fluent NHibernate में "सेट नल" करने के लिए "कैस्केड डिलीट" विकल्प कैसे सेट करें?
- 9. मैं MySQL सर्वर पर बाहरी पहुंच कैसे सक्षम करूं?
- 10. ईएफ कोड-प्रथम में लिंक टेबल के लिए कैस्केड डिलीट को अक्षम कैसे करें?
- 11. एंटिटी फ्रेमवर्क और सिस्टम का उपयोग कर कैस्केड डिलीट के साथ समस्या। डेटा। SQLite
- 12. मैं MySQL में BLOB को VARCHAR में कैसे परिवर्तित करूं?
- 13. मैं टेबल पर डिलीट बाधा कैसे जोड़ सकता हूं?
- 14. ग्रिड व्यू में डिलीट बटन कैसे बनाएं?
- 15. मैं रेल MySQL एडाप्टर कैसे स्थापित करूं?
- 16. क्या मैं इकाई फ्रेमवर्क 4.1 आरसी के साथ कैस्केड डिलीट करने के लिए डेटा एनोटेशन का उपयोग कर सकता हूं?
- 17. मैं mysql में अपना आखिरी डिलीट कमांड कैसे रोलबैक कर सकता हूं?
- 18. प्लेफ्रेमवर्क में कैस्केडिंग डिलीट-एंटिटीज
- 19. जेपीए + हाइबरनेट: कैसे एक बाधा हटाना कैस्केड
- 20. मैं MySQL में अधिकतम लेनदेन आकार कैसे निर्धारित करूं?
- 21. मैं UITableView में कुछ पंक्ति के लिए डिलीट ऑपरेशन को कैसे अक्षम करूं?
- 22. मैं लिंक क्वेरी में कैसे उपयोग करूं?
- 23. आप कैसे सुनिश्चित करते हैं कि ईएफ कोड में तालिका संबंधों पर कैस्केड हटाएं सक्षम है?
- 24. रनटाइम पर जेपीए कैस्केड विकल्प
- 25. "अद्यतन अद्यतन कैस्केड" का उपयोग कब करें
- 26. मैं MySQL में लॉकिंग समस्या कैसे हल करूं?
- 27. मैं Django फ़िल्टर में और कैसे उपयोग करूं?
- 28. मैं MySQL में एक तस्वीर कैसे संग्रहीत करूं?
- 29. मैं mysql में औसत स्ट्रिंग लंबाई कैसे प्राप्त करूं?
- 30. मैं MySQL में टाइमस्टैम्प माइनस 6 सप्ताह कैसे प्राप्त करूं?
एनबी, पर अद्यतन CASCADE शायद एक बुरा विचार है, तो है आप इसे प्राथमिक कुंजी से जोड़ने के लिए उपयोग कर रहे हैं क्योंकि यह अपरिवर्तनीय होना चाहिए और इस सुझाव पर निर्भर होना चाहिए कि डेटाबेस को फिर से डिजाइन की आवश्यकता हो सकती है, लेकिन मुझे लगता है कि यदि आप इसे एक विदेशी कुंजी से जोड़ रहे हैं जो अद्वितीय है लेकिन प्राथमिक नहीं है तो यह ठीक है। – ThinkBonobo