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

Cách tốt nhất để tránh nhập trùng lặp vào cơ sở dữ liệu mysql

Bước đầu tiên sẽ là thiết lập một khóa duy nhất trên bảng:

ALTER TABLE thetable ADD UNIQUE INDEX(pageid, name);

Sau đó, bạn phải quyết định những gì bạn muốn làm khi có một bản sao. Bạn có nên:

  1. bỏ qua nó?

    INSERT IGNORE INTO thetable (pageid, name) VALUES (1, "foo"), (1, "foo");
    
  2. Ghi đè bản ghi đã nhập trước đó?

    INSERT INTO thetable (pageid, name, somefield)
    VALUES (1, "foo", "first")
    ON DUPLICATE KEY UPDATE (somefield = 'first')
    
    INSERT INTO thetable (pageid, name, somefield)
    VALUES (1, "foo", "second")
    ON DUPLICATE KEY UPDATE (somefield = 'second')
    
  3. Cập nhật một số bộ đếm?

    INSERT INTO thetable (pageid, name)
    VALUES (1, "foo"), (1, "foo")
    ON DUPLICATE KEY UPDATE (pagecount = pagecount + 1)
    


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm thế nào để biết MySQLnd có phải là trình điều khiển đang hoạt động hay không?

  2. Cảnh báo:mysqli_connect ():(HY000 / 1045):Quyền truy cập bị từ chối đối với người dùng 'tên người dùng' @ 'localhost' (sử dụng mật khẩu:CÓ)

  3. Lỗi trong MySQL khi đặt giá trị mặc định cho DATE hoặc DATETIME

  4. Cách dễ dàng để xuất bảng SQL mà không cần truy cập vào máy chủ hoặc phpMyADMIN

  5. Cài đặt Apache, MySQL 8 hoặc MariaDB 10 và PHP 7 trên CentOS 7