Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Làm cách nào để ngăn các bản ghi trùng lặp trong cơ sở dữ liệu của tôi khi cập nhật bản ghi?

Nếu ứng dụng của bạn hỗ trợ nhiều người dùng, bạn cần đảm bảo rằng người dùng khác không thực hiện các thay đổi giữa việc kiểm tra các bản sao và cập nhật cơ sở dữ liệu.

Cách dễ nhất để làm điều này là như mbeckish đã đề xuất, tạo một ràng buộc DUY NHẤT trên cột tiêu đề:

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

Sau đó, công cụ cơ sở dữ liệu sẽ thực thi các tiêu đề duy nhất và ứng dụng khách của bạn có thể xử lý phản hồi của người dùng bằng cách bắt bất kỳ ngoại lệ vi phạm ràng buộc nào:

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. Mối quan hệ cha mẹ con cái với một thực thể duy nhất trong Học thuyết 2

  2. Trả lại một đốm màu với json

  3. làm thế nào để sử dụng một like với một tham gia trong sql?

  4. thứ tự này là gì của 1?

  5. PHP &MySQL Bao gồm nút Xóa trên cùng một trang