En utilisant MySQL 5MySQL - Prévenir les enregistrements en double dans la table via l'index?
J'ai une table comme ceci:
date (varchar)
door (varchar)
shift (varchar)
route (varchar)
trailer (varchar)
+ other fields
Ce tableau contient le contenu généré par l'utilisateur (copié depuis une autre table « maître ») et pour empêcher les utilisateurs de créer les mêmes données plus que 1x la table a un index unique créé en fonction des champs spécifiés ci-dessus.
Le problème est que l'index "prévention des doublons" ne fonctionne pas.
Les utilisateurs peuvent toujours ajouter des enregistrements en double sans qu'aucune erreur ne soit signalée.
Ce problème est-il dû au fait que je ne comprends pas quelque chose sur le fonctionnement des index?
Ou
Est-il un éventuel conflit avec le champ de clé primaire (autoincrementing int)?
CREATE TABLE ressemble à ceci:
CREATE TABLE /*!32312 IF NOT EXISTS*/ "tableA" (
"Date" varchar(12) default NULL,
"door" varchar(12) default NULL,
"Shift" varchar(45) default NULL,
"route" varchar(20) default NULL,
"trailer" varchar(45) default NULL,
"fieldA" varchar(45) default NULL,
"fieldB" varchar(45) default NULL,
"fieldC" varchar(45) default NULL,
"id" int(10) unsigned NOT NULL auto_increment,
PRIMARY KEY ("id"),
UNIQUE KEY "duplicate_preventer" ("Date","door","Shift","route","trailer"),
Une ligne dupliquée est:
date door shift route trailer
10/4/2009 W17 1st Shift TEST-01 NULL
10/4/2009 W17 1st Shift TEST-01 NULL
montrent l'instruction CREATE TABLE, s'il vous plaît. – dnagirl
Pouvez-vous poster quelques lignes que vous considérez comme des doublons? –
Quel moteur de base de données utilisez-vous, par exemple InnoDB ou MyISAM? –