Ajouter des enregistrements en évitant les doublons
Résolu/Fermé
coxycross
Messages postés
788
Date d'inscription
mardi 3 novembre 2009
Statut
Membre
Dernière intervention
12 février 2015
-
Modifié par coxycross le 22/02/2013 à 16:38
coxycross Messages postés 788 Date d'inscription mardi 3 novembre 2009 Statut Membre Dernière intervention 12 février 2015 - 22 févr. 2013 à 17:38
coxycross Messages postés 788 Date d'inscription mardi 3 novembre 2009 Statut Membre Dernière intervention 12 février 2015 - 22 févr. 2013 à 17:38
A voir également:
- Ajouter des enregistrements en évitant les doublons
- Supprimer les doublons excel - Guide
- Doublons photos - Guide
- Supprimer les doublons photos gratuit - Télécharger - Nettoyage
- Enregistrer en pdf - Guide
- Ajouter un compte gmail - Guide
8 réponses
Utilisateur anonyme
22 févr. 2013 à 16:38
22 févr. 2013 à 16:38
Met un index UNIQUE sur un champ de ta base et fait un INSERT IGNORE
Utilisateur anonyme
22 févr. 2013 à 16:46
22 févr. 2013 à 16:46
Tu utilises quoi pour gérer ta base de données phpmyadmin?
coxycross
Messages postés
788
Date d'inscription
mardi 3 novembre 2009
Statut
Membre
Dernière intervention
12 février 2015
110
22 févr. 2013 à 16:49
22 févr. 2013 à 16:49
Oui phpmyadmin en effet. J'ai donc, je pense, trouvé pour mettre en UNIQUE, c'est au meme endroit, ou l'on définit la clef primaire, unique, ou Index ?
coxycross
Messages postés
788
Date d'inscription
mardi 3 novembre 2009
Statut
Membre
Dernière intervention
12 février 2015
110
22 févr. 2013 à 16:53
22 févr. 2013 à 16:53
Sachant que ce numero ne doit pas etre la clef primaire, puisque ma clef primaire est un ID
Utilisateur anonyme
22 févr. 2013 à 16:54
22 févr. 2013 à 16:54
Exactement tu édite la structure de la table, le champ unique interdit l'insertion d'un nouvel enregistrement si ce champ existe déjà dans la table.
coxycross
Messages postés
788
Date d'inscription
mardi 3 novembre 2009
Statut
Membre
Dernière intervention
12 février 2015
110
22 févr. 2013 à 16:55
22 févr. 2013 à 16:55
Je viens de cliquer sur UNIQUE depuis phpmyadmin, mais rien ne me confirme que ce numero devient donc unique, il y a un moyen pour le voir ? un moyen visuel pour voir que ce numero est bien desormais UNIQUE ?
Utilisateur anonyme
22 févr. 2013 à 16:57
22 févr. 2013 à 16:57
Le plus simple essaies de faire un insert avec un numéro déjà existant et regarde ce qu'il se passe!
coxycross
Messages postés
788
Date d'inscription
mardi 3 novembre 2009
Statut
Membre
Dernière intervention
12 février 2015
110
22 févr. 2013 à 16:58
22 févr. 2013 à 16:58
Je suis en ce moment meme en train de tester cela.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
coxycross
Messages postés
788
Date d'inscription
mardi 3 novembre 2009
Statut
Membre
Dernière intervention
12 février 2015
110
22 févr. 2013 à 17:02
22 févr. 2013 à 17:02
Donc, pour le moment ça ne fonctionne pas, j'ai mis mon champ NumCarte en UNIQUE, et j'utilise la requete ci dessous pour remplir ma BDD. Sauf que j'ai encore des doublons :
RPassageAnnee = "INSERT INTO eleves(Nom,Prenom,Classe,NumCarte) VALUES ('" + Nom[i] + "','" + Prenom[i] + "','" + Classe[i] + "', '" + NumCarte[i] + "')";
coxycross
Messages postés
788
Date d'inscription
mardi 3 novembre 2009
Statut
Membre
Dernière intervention
12 février 2015
110
22 févr. 2013 à 17:05
22 févr. 2013 à 17:05
Le truc, c'est que si, le champ NumCarte existe déjà dans ma base de données, alors la personne n'est pas ajoutée. Son nom, prenom, classe, et numcarte, ne sont pas enregistré dans ma bdd puisqu'ils existent déjà. Mais je n'arrive pas à ce résultat, le moindre coup de main est le bienvenue.
Utilisateur anonyme
Modifié par kyser soze le 22/02/2013 à 17:16
Modifié par kyser soze le 22/02/2013 à 17:16
Hum bizarre bizarre, parce que lorsque je met un champ unique (pour mon exemple idcompteur) sur une table et que j'essaie de faire un insert d'une valeur déjà existante :
Mysql me répond :
Erreur #1062 - Duplicate entry '1' for key 'idcompteur'
=> pas d'insert
Lorsque tu as cliqué sur UNIQUE dans la structure de la table, mysql ne t'as pas renvoyé d'erreur?
De base tu avais des doublons dans ta table?
INSERT INTO 'bddaccess'.'testunique' ( 'idcompteur' , 'champ1' , 'champ2' ) VALUES ( '1', '1', '1' )
Mysql me répond :
Erreur #1062 - Duplicate entry '1' for key 'idcompteur'
=> pas d'insert
Lorsque tu as cliqué sur UNIQUE dans la structure de la table, mysql ne t'as pas renvoyé d'erreur?
De base tu avais des doublons dans ta table?
coxycross
Messages postés
788
Date d'inscription
mardi 3 novembre 2009
Statut
Membre
Dernière intervention
12 février 2015
110
22 févr. 2013 à 17:17
22 févr. 2013 à 17:17
Lorsque je clique sur UNIQUE dans la structure de ma table, voila très exactement ce qu'il se passe
https://www.casimages.com/i/130222051747391985.jpg.html
Aucune erreur, ou quoi que ce soit. Mais je peux tout de meme avoir des doublons de NumCarte
https://www.casimages.com/i/130222051747391985.jpg.html
Aucune erreur, ou quoi que ce soit. Mais je peux tout de meme avoir des doublons de NumCarte
coxycross
Messages postés
788
Date d'inscription
mardi 3 novembre 2009
Statut
Membre
Dernière intervention
12 février 2015
110
22 févr. 2013 à 17:19
22 févr. 2013 à 17:19
Je ne sais pas si cela peut avoir une incidence, mais j'execute ma requete de cette manière :
MySqlCommand cmdPassageAnnee = new MySqlCommand(RPassageAnnee, conn); cmdPassageAnnee.ExecuteNonQuery();
Utilisateur anonyme
Modifié par kyser soze le 22/02/2013 à 17:21
Modifié par kyser soze le 22/02/2013 à 17:21
Regarde bien au-dessus de ta requête il y a écrit :
#1062 - Duplicata du champ '0' pour la clef "NumCarte"
donc le alter table n'est pas pris en compte, il faut d'abord supprimer les doublons présent dans la table , et ensuite cliqué sur unique pour effectuer le alter table
#1062 - Duplicata du champ '0' pour la clef "NumCarte"
donc le alter table n'est pas pris en compte, il faut d'abord supprimer les doublons présent dans la table , et ensuite cliqué sur unique pour effectuer le alter table
coxycross
Messages postés
788
Date d'inscription
mardi 3 novembre 2009
Statut
Membre
Dernière intervention
12 février 2015
110
22 févr. 2013 à 17:23
22 févr. 2013 à 17:23
Ah oui effet, je n'avais pas bien regardé. En effet, dans ma BDD, NumCarte prend la valeur 0 quand il n'est pas renseigné. Je dois donc le metre en 'Null' ? est-ce que c'est possible ?
coxycross
Messages postés
788
Date d'inscription
mardi 3 novembre 2009
Statut
Membre
Dernière intervention
12 février 2015
110
22 févr. 2013 à 17:26
22 févr. 2013 à 17:26
Ah voila, j'ai supprimé tous mes enregistrements, et je viens de réussir à la passer en UNIQUE. Je vais donc tester tout de suite, si je peux créer des doublons ou non
Utilisateur anonyme
22 févr. 2013 à 17:31
22 févr. 2013 à 17:31
Il est possible de mettre le champ à NULL mais il faut aussi le préciser dans la structure il me semble
coxycross
Messages postés
788
Date d'inscription
mardi 3 novembre 2009
Statut
Membre
Dernière intervention
12 février 2015
110
22 févr. 2013 à 17:38
22 févr. 2013 à 17:38
Ah! Merci beaucoup, maintenant tout marche comme je le souhaite.
Merci beaucoup de ton aide, tu viens de mettre fin à 2h de reflexion !
Merci beaucoup de ton aide, tu viens de mettre fin à 2h de reflexion !
22 févr. 2013 à 16:40