Verification avant insert

Résolu
agparchitecture Messages postés 88 Date d'inscription jeudi 9 mars 2006 Statut Membre Dernière intervention 7 novembre 2010 - 31 oct. 2007 à 12:12
agparchitecture Messages postés 88 Date d'inscription jeudi 9 mars 2006 Statut Membre Dernière intervention 7 novembre 2010 - 5 nov. 2007 à 08:55
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

neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
31 oct. 2007 à 22:54
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...
3
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
1 nov. 2007 à 17:39
@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...
0
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
1 nov. 2007 à 18:32
@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"...
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
1 nov. 2007 à 20:34
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.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
agparchitecture Messages postés 88 Date d'inscription jeudi 9 mars 2006 Statut Membre Dernière intervention 7 novembre 2010
5 nov. 2007 à 08:55
Ok je selectionnerai et verifierai avant l'insert.

Merci à vous deux.
0
Rejoignez-nous