2011-08-09 11 views
5

एक आईएनएसईआरटी करने का कोई तरीका है लेकिन अपडेट के बजाय डुप्लिकेट कुंजी पर एक चयन करें?क्या MySQL है ... INSERT ... डिप्लिकेट कुंजी चयन पर?

+0

उस के लिए आपका उपयोग केस वास्तव में क्या है? –

+0

... क्यों? एक अच्छे कारण के लिए 'डिप्लीकेट कुंजी अपडेट' पर है; अगर कोई सम्मिलन असफल हो जाता है, तो एक अद्यतन समझ में आता है। एक तरफ, एक चयन, नहीं होगा - और एक डालने वाला कोड परिणामस्वरूप वापस सेट की उम्मीद नहीं करेगा। – cHao

+4

@cHao: उदाहरण के लिए, जब आप सम्मिलित/अस्तित्व वाली पंक्ति की आईडी का उपयोग करना चाहते हैं, तो आप कथन को एक मान वापस करने के लिए चाहते हैं। – Seffix

उत्तर

2

एक प्रश्न में नहीं, लेकिन आप INSERT IGNORE <xxx> और फिर SELECT <xxx> चलाते हैं। IGNORE यह किसी भी पंक्ति को अनदेखा करता है जो रोकथाम के बजाय डुप्लिकेट कुंजी त्रुटियों को ट्रिगर करेगा।

0

नहीं। आपको डुप्लिकेट कुंजी त्रुटि के लिए देखना होगा और फिर SELECT क्वेरी जारी करना होगा।

यदि यह INSERT और UPDATE प्रश्नों के बाद मौजूद है तो यह काफी समस्याग्रस्त होगा, परिणाम परिणाम को वापस करने के लिए डेटा और SELECT संशोधित करने के लिए प्रश्न हैं। अच्छे कारणों से सभी प्रकार के ड्राइवर/इंटरफेस इन मामलों को अलग-अलग संभालते हैं।

संबंधित मुद्दे