Page 1 sur 1

Insertion sans doublon

Posté : 25 févr. 2005, 19:18
par Invité
Bonjour à tous

Existe t-il une fonction ou un moyen sur MySql qui permette de vérifier automatiquement avant ajout qu'une valeur n'apparait pas déjà dans la base? comme un retour d'erreur qui me permettrait d'agir en consequence, par exemple?

Pour l'instant, j'effectue une requète sql préalable (select.... > mysql_count_result) mais je me demandais si ce n'était pas possible de l'éviter.

Merci d'avance

Posté : 25 févr. 2005, 20:02
par renan44
Cette question m'intéresse aussi, car c'et vrai que le select que j'utilise également au préalable pour la verification n'est pas franchement pratique...

Maintenant, est ce qu'il y a vraiment une focntion, bonne question
J'attends vos réponses aussi :wink:

Posté : 25 févr. 2005, 20:41
par ouckileou
ben si tu tentes d'insérer un tuple qui va créer un doublon de clé primaire, le sgbd va renvoyer une erreur donc on peut tester cette erreur

maintenant sur un autre champ je ne sais pas

mais pourquoi vous n'aimez pas le petit "select count(*)" avant ? :?:

Posté : 25 févr. 2005, 20:44
par Jerem'
Parce que c'est une requete supplémentaire pour la base

A petit niveau c'est pas grave mais sur une base à forte audience ça peut ralentir un peu.

Mais bon moi je select count(*) sans complexe aussi lol :P

Posté : 25 févr. 2005, 21:46
par renan44
C'est pas que ça me gène, mais bon, s'y on aurait pu s'en passer pour une focntion direct, pourquoi s'en priver ????

Posté : 25 févr. 2005, 21:59
par Jerem'
Perso j'y crois pas trop, ça se saurait :P

Posté : 25 févr. 2005, 22:56
par fab
pareil :)

Posté : 26 févr. 2005, 01:02
par Hubert Roksor
Et pourquoi pas un index UNIQUE ? si vous n'avez pas envie de gérer les warnings MySQL je pense qu'avec un INSERT IGNORE INTO pour insérer et un mysql_affected_rows() vous arrivez plus ou moins au même: -1 = erreur, 0 = doublon, 1 = insertion.