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

रिकॉर्ड अपडेट करते समय मैं अपने डेटाबेस में डुप्लिकेट रिकॉर्ड्स को कैसे रोकूं?

यदि आपका एप्लिकेशन एकाधिक उपयोगकर्ताओं का समर्थन करता है, तो आपको यह सुनिश्चित करने की आवश्यकता है कि आपके डुप्लिकेट के लिए चेक और डेटाबेस अपडेट के बीच किसी अन्य उपयोगकर्ता द्वारा परिवर्तन नहीं किए गए हैं।

ऐसा करने का सबसे आसान तरीका है जैसा कि मैककिश ने सुझाव दिया है, शीर्षक कॉलम पर एक अद्वितीय बाधा बनाएं:

ALTER TABLE maindatabase.animelist 
ADD CONSTRAINT U_animelist_TitleAnime UNIQUE (TitleAnime)

डेटाबेस इंजन तब अद्वितीय शीर्षक लागू करेगा और आपका क्लाइंट किसी भी बाधा उल्लंघन अपवाद को पकड़कर उपयोगकर्ता प्रतिक्रिया को संभाल सकता है:

void checkData()
{
    SuspendLayout();
    try
    {

        updateData();

    }
    catch (Exception ex)
    {
        MySqlException sqlEx = ex as MySqlExecption;
        // If there is a constraint violation error.
        // (I may have the wrong error number, please test.)
        if (sqlEx != null && sqlEx.Number == 1062) 
        {
            my = Form.ActiveForm as MyList;
            my.msg = new Message_Box();
            my.msg.Descrip.Text = "Record is already in the Database";
            my.msg.Title.Text = "Duplicate Record";
            my.msg.ShowDialog();
        } 
        else 
        {
            MessageBox.Show("" + ex);
        }
    }
    finally
    {
        ResumeLayout();
    }
}


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. इसके कॉलम के आधार पर क्वेरी कैसे लिखें

  2. MySQL:एक स्ट्रिंग वाले कॉलम नामों का चयन करें

  3. MySQL सभी उपयोगकर्ताओं के लिए अनुदान दिखाएँ

  4. MySQL में SELECT INTO OUTFILE का उपयोग करना

  5. क्या MySQL PostgreSQL (Perl/DBI के तहत) की तुलना में SQL इंजेक्शन हमले के लिए अधिक प्रतिरोधी है?