Verification avant insert [Résolu]

Messages postés
88
Date d'inscription
jeudi 9 mars 2006
Statut
Membre
Dernière intervention
7 novembre 2010
- - Dernière réponse : 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.
Afficher la suite 

Votre réponse

5 réponses

Meilleure réponse
Messages postés
2492
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
13
3
Merci
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...

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 110 internautes nous ont dit merci ce mois-ci

Commenter la réponse de neigedhiver
Messages postés
10918
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
32
0
Merci
@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...
Commenter la réponse de malalam
Messages postés
2492
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
13
0
Merci
@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"...
Commenter la réponse de neigedhiver
Messages postés
10918
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
32
0
Merci
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.
Commenter la réponse de malalam
Messages postés
88
Date d'inscription
jeudi 9 mars 2006
Statut
Membre
Dernière intervention
7 novembre 2010
0
Merci
Ok je selectionnerai et verifierai avant l'insert.

Merci à vous deux.
Commenter la réponse de agparchitecture

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.