Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да предотвратя дублиращи се записи в моята база данни, докато актуализирам записи?

Ако вашето приложение поддържа множество потребители, трябва да се уверите, че промените не са направени от друг потребител между вашата проверка за дубликати и актуализацията на базата данни.

Най-лесният начин да направите това е, както предлага mbeckish, да създадете УНИКАЛНО ограничение в колоната със заглавие:

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. HTML::TableExtract:как да стартирате правилния аргумент [вижте пример на живо]

  2. com.mysql.jdbc.exceptions.MySQLSyntaxErrorException при използване на PreparedStatement

  3. Изявление за динамична заявка на MySQL в Python

  4. MySQL услуги за отчитане с отворен код

  5. Името на типа или пространството от имена 'MySqlConnection' не можа да бъде намерено (липсва ли ви директива using или препратка към асембли?)