Bạn muốn có một chỉ mục duy nhất trên event_id
và 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ệ.