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

Ngăn chặn các giá trị trùng lặp trong cơ sở dữ liệu - mysql

Bạn muốn có một chỉ mục duy nhất trên event_id day :

create unique index idx_recurrence_event_day on recurrence(event_id, day)

Điều này sẽ ngăn chặn sự trùng lặp mà bạn không muốn.

Nếu bạn đã có các bản sao, có nhiều cách khác nhau để loại bỏ chúng. Tuy nhiên, sẽ dễ dàng hơn nếu bạn có một id duy nhất cho mỗi hàng, đây là lý do tại sao khóa chính tự động tăng dần hữu ích trong tất cả các bảng.

Một cách để loại bỏ chúng ngay cả khi không có id duy nhất là sử dụng:

alter ignore table recurrence add unique (event_id, day);

Cá nhân tôi không thích phương pháp này vì thêm chỉ mục sẽ không xóa các hàng, nhưng đây là một tiện ích mở rộng MySQL hợp lệ.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL:Curdate () so với Now ()

  2. Tại sao điều này trả về id tài nguyên # 2?

  3. Làm thế nào để nhóm theo tuần trong MySQL?

  4. Lệnh CakePHP không hoạt động

  5. Sử dụng chỉ mục tìm kiếm Solr làm cơ sở dữ liệu - điều này có sai không?