sql >> Databáze >  >> RDS >> Mysql

Jak zabráním duplicitním záznamům v databázi při aktualizaci záznamů?

Pokud vaše aplikace podporuje více uživatelů, musíte zajistit, aby mezi kontrolou duplikátů a aktualizací databáze neprovedl změny jiný uživatel.

Nejjednodušší způsob, jak to udělat, je, jak navrhl mbeckish, vytvořit ve sloupci nadpisu UNIKÁTNÍ omezení:

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

Databázový stroj pak vynutí jedinečné názvy a váš klient může zpracovat zpětnou vazbu od uživatelů zachycením jakékoli výjimky porušení omezení:

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. SQL Po sobě jdoucí záznamy s počtem

  2. LocalDateTime, ZonedDateTime a Timestamp

  3. Ekvivalent ROWID v postgresu 9.2

  4. Jak zjistit verzi MySQL