Chcete jedinečný index na event_id
a day
:
create unique index idx_recurrence_event_day on recurrence(event_id, day)
Zabráníte tak duplikaci, kterou nechcete.
Pokud již máte duplikáty, existuje několik způsobů, jak se jich zbavit. Bylo by však jednodušší, kdybyste měli jedinečné ID pro každý řádek, což je jeden z důvodů, proč je automaticky inkrementovaný primární klíč užitečný ve všech tabulkách.
Jedním ze způsobů, jak se jich zbavit i bez jedinečného ID, je použít:
alter ignore table recurrence add unique (event_id, day);
Osobně se mi tato metoda nelíbí, protože přidáním indexu by se neměly mazat řádky, ale toto je platné rozšíření MySQL.