Mysql
 sql >> Base de données >  >> RDS >> Mysql

Empêcher les valeurs en double dans la base de données - mysql

Vous voulez un index unique sur event_id et day :

create unique index idx_recurrence_event_day on recurrence(event_id, day)

Cela évitera la duplication que vous ne voulez pas.

Si vous avez déjà des doublons, vous pouvez vous en débarrasser de différentes manières. Cependant, ce serait plus facile si vous aviez un identifiant unique pour chaque ligne, ce qui explique pourquoi une clé primaire auto-incrémentée est utile dans toutes les tables.

Une façon de s'en débarrasser même sans identifiant unique est d'utiliser :

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

Personnellement, je n'aime pas cette méthode car l'ajout d'un index ne devrait pas supprimer de lignes, mais c'est une extension MySQL valide.