sql >> Database >  >> RDS >> Mysql

Hoe voorkom ik dubbele records in mijn database tijdens het bijwerken van records?

Als uw applicatie meerdere gebruikers ondersteunt, moet u ervoor zorgen dat er geen wijzigingen worden aangebracht door een andere gebruiker tussen uw controle op duplicaten en de database-update.

De eenvoudigste manier om dit te doen is, zoals mbeckish voorstelde, een UNIEKE beperking maken voor de titelkolom:

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

De database-engine zal dan unieke titels afdwingen en uw klant kan gebruikersfeedback afhandelen door elke uitzondering op de beperking op te vangen:

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. Maak een vervolgkeuzelijst van waarde in database php

  2. is er een limiet voor de bestandsgrootte bij het maken van een csv-bestand met php en mysql?

  3. Verkrijg de waarden van de afgelopen 6 maanden in mysql

  4. Een SQL Server Agent-taak verwijderen in Azure Data Studio