Verification avant insert [Résolu]

Signaler
Messages postés
88
Date d'inscription
jeudi 9 mars 2006
Statut
Membre
Dernière intervention
7 novembre 2010
-
Messages postés
88
Date d'inscription
jeudi 9 mars 2006
Statut
Membre
Dernière intervention
7 novembre 2010
-
Bonjours a tous.

Existe t il un moyen de verifier si un valeur que l'on va inserer existe déja.

En effet, j'aimerai eviter trop de requetes donc je me demansais si par une requete de type:

INSERT INTO nom_de_table (col1,col2) VALUES(val1,val2);

et récuperer si val1 ou val2 existe.

Merci de votre aide.

5 réponses

Messages postés
2483
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
17
Salut,

Sous MySQL, Access, Oracle, DB2, SQL Server, PostgreSQL, ou un autre SGBD ?

Avec MySQL, ce n'est pas vraiment possible.
Tout ce qui est possible, c'est d'utiliser ON DUPLICATE KEY
Seulement, cela ne fonctionne que pour les champs indexés et à condition de fournir une action UPDATE à faire en cas de doublon.
En gros, le mieux c'est encore de faire une requête SELECT avant...

Pour les autres SGBD, je ne sais pas... Il est fort probable, de toute façon, que la doc du SGBD que tu utilises te renseignera bien : n'hésite pas à la consulter, elle a été écrite par les auteurs du SGBD (qui savent donc de quoi ils parlent) et justement en vue de répondre à ce genre de question...
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
23
@neigedhiver => lol, tu fais gaffe maintenant, après mes multiples remarques quant au type de bdd utilisé suite à tes réponses ;-)
Mais ouais, t'as raison, là c'est vague.

Selon ton serveur de bdd, un trigger peut faire l'affaire. Mais ce n'est pas moins coûteux qu'un select...
Et, tu sais, un select sur une table bien indexée, c'est pas la mort...
Messages postés
2483
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
17
@malalam >
Ben... je pars vaguement du principe que quand on ne précise pas, c'est du MySQL... Question d'habitude, et puis les fai qui proposent autre chose sont rares, parfois postgreSQL, mais guère plus... Après, si c'est une configuration spécifique, en entreprise par exemple, il me semble avoir remarqué que les gens font attention à préciser ce qu'ils utilisent, quand c'est pas "la norme"...
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
23
Tu as sans doute raison :-)
Perso, depuis 3 ans, je bosse bien plus souvent sur mssql que sur mysql. Et comme il y a beaucoup de différences, j'ai appris à essayer d'écrire du sql le plus ansi possible ;-) Bref, le plus portable possible.
Mais en effet, la plupart des gens ici étant amateurs, ils ont généralement un hébergement classique offrant php + mysql.
Messages postés
88
Date d'inscription
jeudi 9 mars 2006
Statut
Membre
Dernière intervention
7 novembre 2010

Ok je selectionnerai et verifierai avant l'insert.

Merci à vous deux.