sql >> Database teknologi >  >> RDS >> Mysql

Hvordan forhindrer jeg duplikerede poster i min database, mens jeg opdaterer poster?

Hvis din applikation understøtter flere brugere, skal du sikre dig, at ændringer ikke foretages af en anden bruger mellem din kontrol for dubletter og databaseopdateringen.

Den nemmeste måde at gøre dette på er som mbeckish foreslået, at oprette en UNIK begrænsning på titelkolonnen:

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

Databasemotoren vil derefter håndhæve unikke titler, og din klient kan håndtere brugerfeedback ved at fange enhver undtagelse for overtrædelse af begrænsninger:

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. Vælg kyrillisk tegn i SQL

  2. Sådan rejser du en fejl i en MySQL-funktion

  3. Får du mysql-feltdata, når der klikkes på et link?

  4. Hvordan ekko nøgle:værdi-parrene i et underarray? PHP