2013-03-18 5 views
5

मैं एक प्रश्न है इस प्रकार है ...ढूँढना wheather mysql क्वेरी एक अद्यतन किया जाता या सम्मिलित

INSERT INTO MYTABLE (f1,f2,f3,f4) VALUES (1,2,3,4) ON DUPLICATE KEY UPDATE f4=5; 

मैं के माध्यम से हासिल कर लिया है यही कारण है,

एक कनेक्शन बना रहा है, बयान & क्वेरी को निष्पादित के रूप में अब

statement.execute(query); 

लेकिन, इस प्रकार मुझे लगता है कि क्या कोड एक सम्मिलित प्रदर्शन किया था या अद्यतन की आवश्यकता है?

क्या कोई मेरी मदद कर सकता है ??

अग्रिम धन्यवाद ...

उत्तर

1

मुझे किसी विशिष्ट निर्मित फ़ंक्शन या काम के बारे में पता नहीं है।

लेकिन मेरे मामले में मैं

select count(*) as oldcount from MYTABLE; 

इस स्तर

INSERT INTO MYTABLE (f1,f2,f3,f4) VALUES (1,2,3,4) ON DUPLICATE KEY UPDATE f4=5; 

select count(*) as newCount from MYTABLE; 

retrive OLDCOUNT and NEW COUNT 

if(oldcount != new count) 
{ 
    //InsertPerformed 
} 

else 
{ 
    //updateperformed 
} 
+0

सुझाव ब्रो के लिए धन्यवाद ... लेकिन मैं डीबी को बाद में कॉल का उपयोग नहीं करना चाहता हूं। क्योंकि उपर्युक्त उदाहरण उपयोग करता है, डीबी को 3 कॉल। मैं अधिकतम 2000 पंक्तियों के लिए अधिकतम 100000 पंक्तियों में अपलोड करूंगा। तो, मुझे लगता है कि यह संभव नहीं होगा (मेरी समस्या के लिए)। एक बार फिर धन्यवाद :) – sridhar

2

आप के बजाय दो कथनों का उपयोग हो सकता है: executeUpdate प्रभावित पंक्तियों की संख्या देता है। यदि वह संख्या 0 है, तो आपको एक सम्मिलन करना होगा।

+2

से [प्रलेखन] (http पर अपने क्वेरी प्रदर्शन एक आसान तरीका में इस तरह यह संभव बना सकता था: // देव .mysql.com/डॉक्टर/refman/5.5/en/insert-on-duplicate.html) ऑन डिप्लिकेट कुंजी अपडेट के साथ, प्रति पंक्ति प्रभावित प्रभावित पंक्ति 1 है यदि पंक्ति को एक नई पंक्ति के रूप में डाला जाता है, और 2 यदि एक मौजूदा पंक्ति अद्यतन है। – NilsH

+0

हां, लेकिन निष्पादित() विधि केवल एक बूलियन लौटाती है: श्रीधर जो जानना चाहता है उसके बारे में कोई जानकारी नहीं है। –

+0

क्या होगा यदि क्वेरी 'DELETE' ऑपरेशन है? क्या यह 0 भी वापस नहीं है? क्योंकि प्रलेखन में, 'executeUpdate() 'विधि वापसी [या तो (1) एसक्यूएल डेटा मैनिपुलेशन लैंग्वेज (डीएमएल) कथन के लिए पंक्ति गणना या SQL कथन के लिए (2) 0 जो कुछ भी वापस नहीं लौटाती है] (http: // docs। oracle.com/javase/6/docs/api/java/sql/Statement.html#executeUpdate%28java.lang.String%29) –

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