2014-11-05 8 views
8

मेरे पास एक अद्वितीय प्राथमिक कुंजी कॉलम वाला एक टेबल है जिसे id कहा जाता है। कभी-कभी जब मैं INSERT क्वेरी करता हूं तो मुझे एक त्रुटि मिलती है क्योंकि id मान पहले ही उपयोग किया जा रहा है।डुप्लिकेट कुंजी डालने का अपवाद

क्या मैं try और catch के साथ इस विशिष्ट त्रुटि को पकड़ सकता हूं?

+2

जब आप कोशिश/पकड़ का उपयोग करते हैं तो क्या काम नहीं करता है? – sp00m

+0

मैंने किया, लेकिन यह इसे पकड़ नहीं रहा है। – Josh

+0

क्या आप वह कोड दिखा सकते हैं? – sp00m

उत्तर

9

ऐसा लगता है कि mysql डुप्लिकेट प्राथमिक कुंजी के लिए 1062 त्रुटि कोड फेंक रहा है। ,

public static final int MYSQL_DUPLICATE_PK = 1062; 

try{ 
    //code that throws sql exception 
} catch(SQLException e){ 
    if(e.getErrorCode() == MYSQL_DUPLICATE_PK){ 
     //duplicate primary key 
    } 
} 

सूचना है कि इस दृष्टिकोण पार डाटाबेस विक्रेता नहीं है क्योंकि विभिन्न विक्रेताओं डुप्लिकेट पी के लिए अलग त्रुटि कोड हो सकता है: आप अपने एसक्यूएल अपवाद के लिए त्रुटि कोड देख सकते हैं।

+0

मैंने सोचा कि 'एसक्लएक्सप्शन' कक्षा थी लेकिन यकीन नहीं था। विशिष्ट त्रुटि कोड की जांच करने पर बहुत अच्छा विचार - मुझे नहीं पता था कि यह संभव था। – AdamMc331

+1

पूर्णता के लिए - ओरेकल के तहत मेरा मानना ​​है कि लौटाई गई त्रुटि कोड '1' है [यहां देखें] (http://www.dba-oracle.com/sf_ora_00001_unique_constraint_violated.htm)। – OldCurmudgeon

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