sql - How to create Trigger to prevent inserting the duplicate row in MYSQL 5.0.27? -
यह प्रश्न निम्न पिछले प्रश्न का पालन करता है।
मेरे पास एक तालिका MyText
है जिसमें आईडी
कॉलम, text
कॉलम & amp; कई अन्य कॉलम
आईडी - पाठ - प्रकार .. और अन्य फाइल 1 - यह मेरा पाठ है 2 - xxxx
मुझे text
कॉलम समर्थन यूनिकोड चाहिए अधिकतम लंबाई के साथ 700 यूनिकोड वर्ण रख सकते हैं। मैं अद्वितीय (टेक्स्ट)
को सेट नहीं कर सकता क्योंकि यूनिकोड को 3 बाइट्स लेते हैं, इसलिए मुझे 2100 बाइट्स (700 * 3) अद्वितीय कॉलम की आवश्यकता है।
यह मेरा पाठ है
" (हम केस संवेदी पर ध्यान नहीं रखेंगे) में MyText
तालिका में प्रवेश करेंगे, तो Mysql पूरी तरह से सभी प्रश्नों को रद्द कर देगा जिसमें डालने स्टेटमेंट और सिस्टम को अन्य क्वेरी करने से रोकने के लिए SQLException
उत्पन्न करेगा। ठीक है, मान लीजिए आपको अपने जावा कोड में एसक्यूएल स्टेटमेंट की एक श्रृंखला चलाने की है
< प्री> MyText में डालें ('यह मेरा पाठ है', 1); अन्य टेबल में डालें ('कुछ पाठ'); ओटेटटैबल अपडेट करें ...
तब जब सिस्टम कर रहा है MyText में डालें ('यह मेरा पाठ है', 1);
, इसे अन्य क्वेरीज़ करना बंद कर देना चाहिए इसके अलावा, कुछ लोग उपसर्ग सूचकांक
करने के लिए Nysql को चयन करें कोड> जल्दी करने में मदद करने का सुझाव देते हैं, लेकिन मुझे यकीन नहीं है कि यह
ध्यान दें: MYSQL 5.027 2006 संस्करण है जो बहुत पुराना है, लेकिन मुझे यह पसंद है
तो कैसे ट्रिगर बनाने के लिए जो मेरी आवश्यकता को पूरा करता है या मेरी समस्या को कैसे ठीक करें?
मैं प्रदर्शन कारणों की वजह से इसके लिए एक ट्रिगर का उपयोग नहीं करने की सिफारिश करेगा
इसके बजाय, अपने मान की एक या हैश को संग्रहित करने के लिए एक अतिरिक्त कॉलम बनाएं, और उस स्तंभ को एक बाधा का उपयोग करके अद्वितीय बनाएं।
उपर्युक्त लिंक्स के अनुसार, दोनों हैशिंग फ़ंक्शन मौजूद हैं MySQL का संस्करण वैकल्पिक रूप से, यदि आपके जावा कोड में इसे एकीकृत करना आसान है, तो आप क्लास का इस्तेमाल करते हुए जावा में हैशिंग कर सकते हैं।
आपके सवाल का वह हिस्सा जहां आप इंगित करते हैं कि कोई अन्य क्वेरी निष्पादित नहीं की जानी चाहिए, एक डुप्लिकेट की वजह से विफल रहता है, इसका सबसे अच्छा इस्तेमाल किया जाता है। ये सादे जेडीबीसी या अधिकतर ओआरएम फ्रेमवर्क्स का उपयोग कर जावा में भी समर्थित हैं।
Comments
Post a Comment