sql >> Databasteknik >  >> RDS >> Mysql

Hur förhindrar jag dubbletter av poster i min databas när jag uppdaterar poster?

Om din applikation stöder flera användare måste du se till att ändringar inte görs av en annan användare mellan din kontroll efter dubbletter och databasuppdateringen.

Det enklaste sättet att göra detta är, som mbeckish föreslagit, skapa en UNIK begränsning i rubrikkolumnen:

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

Databasmotorn kommer sedan att genomdriva unika titlar och din klient kan hantera användarfeedback genom att fånga eventuella undantag för överträdelse av begränsningar:

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. JSON_QUOTE() – Hur man undslipper tecken i strängar som används som JSON-värden i MySQL

  2. Exportera en hel SQLite-databas till en SQL-fil

  3. Hur kan jag beställa efter en anpassad funktion i SQLAlchemy

  4. Om två samma fält finns infoga annan uppdatering