Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Verhindern Sie doppelte Werte in der Datenbank - mysql

Sie möchten einen eindeutigen Index für event_id und day :

create unique index idx_recurrence_event_day on recurrence(event_id, day)

Dadurch wird die Duplizierung verhindert, die Sie nicht möchten.

Wenn Sie bereits Duplikate haben, gibt es verschiedene Möglichkeiten, wie Sie diese loswerden können. Es wäre jedoch einfacher, wenn Sie für jede Zeile eine eindeutige ID hätten, was einer der Gründe dafür ist, warum ein automatisch inkrementierter Primärschlüssel in allen Tabellen nützlich ist.

Eine Möglichkeit, sie auch ohne eindeutige ID loszuwerden, ist die Verwendung von:

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

Persönlich mag ich diese Methode nicht, weil das Hinzufügen eines Index keine Zeilen löschen sollte, aber dies ist eine gültige MySQL-Erweiterung.