Potrzebujesz unikalnego indeksu dla event_id
i day
:
create unique index idx_recurrence_event_day on recurrence(event_id, day)
Zapobiegnie to powielaniu, którego nie chcesz.
Jeśli masz już duplikaty, możesz się ich pozbyć na różne sposoby. Byłoby jednak łatwiej, gdybyś miał unikalny identyfikator dla każdego wiersza, co jest jednym z powodów, dla których automatycznie zwiększany klucz podstawowy jest przydatny we wszystkich tabelach.
Jednym ze sposobów na pozbycie się ich nawet bez unikalnego identyfikatora jest użycie:
alter ignore table recurrence add unique (event_id, day);
Osobiście nie podoba mi się ta metoda, ponieważ dodanie indeksu nie powinno usuwać wierszy, ale jest to prawidłowe rozszerzenie MySQL.