Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

सम्मिलित करते समय डुप्लिकेट पंक्तियों को कैसे अनदेखा करें

डेटाबेस शैली विकल्प

हाइबरनेट अपने insert into . में कोई विकल्प जोड़ने की पेशकश नहीं करता है बयान। और मैं नहीं जानता कि क्या वही विकल्प MS SQL के लिए उपलब्ध है।

लेकिन अगर आपको ऐसा कोई विकल्प मिलता है, तो आप इन्सर्ट स्टेटमेंट को इंटरसेप्ट कर सकते हैं और उसे खुद जोड़ सकते हैं:

public class IgnoreRowOnDupInterceptor extends EmptyInterceptor {

  public String onPrepareStatement(String sql) {
    if (sql.startsWith("insert into avaya_cm_cdr") {
      return sql.replace("insert into", 
        "insert /*+ ignore_row_on_dupkey_index(avaya_cm_cdr, i_avaya_cm_cdr_nodub) */ into");
    }
    return sql;
  }

} 

आपको इस इंटरसेप्टर को अपने persistence.xml . में घोषित करना होगा :

<property name="hibernate.ejb.interceptor" value="...IgnoreRowOnDupInterceptor" />

जेपीए शैली विकल्प

आप अंतिम पार्सिंग से अंतिम पंक्ति याद कर सकते हैं (या इसे डेटाबेस से पुनर्प्राप्त करें) और उस पंक्ति तक फ़ाइल को छोड़ दें। उस स्थिति में आप हर मौजूदा आइटम को बार-बार पार्स करने के लिए समय भी बचाएंगे।

मेरे दृष्टिकोण से यह जेपीए तरीका है, क्योंकि आप आमतौर पर डेटाबेस का उपयोग केवल भंडारण के रूप में करते हैं और व्यावसायिक तर्क को (जावा) एप्लिकेशन में रखते हैं।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. स्क्रिप्ट का उपयोग करके PHP MySQL डेटाबेस कनेक्शन का परीक्षण कैसे करें

  2. MySQL में अग्रणी और अनुगामी वर्ण कैसे निकालें?

  3. पीडीओ में कोई पंक्ति नहीं होने पर मूल्य वापसी

  4. PHP MySQL को GPS से त्रिज्या उपयोगकर्ता के स्थान में स्थान मिलते हैं

  5. किसी प्रपत्र के माध्यम से डेटाबेस में इमोजी जोड़ते समय गलत स्ट्रिंग त्रुटि