Verification avant insert [Résolu]

agparchitecture 88 Messages postés jeudi 9 mars 2006Date d'inscription 7 novembre 2010 Dernière intervention - 31 oct. 2007 à 12:12 - Dernière réponse : agparchitecture 88 Messages postés jeudi 9 mars 2006Date d'inscription 7 novembre 2010 Dernière intervention
- 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
neigedhiver 2492 Messages postés jeudi 30 novembre 2006Date d'inscription 14 janvier 2011 Dernière intervention - 31 oct. 2007 à 22:54
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...

Merci neigedhiver 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Commenter la réponse de neigedhiver
malalam 10918 Messages postés lundi 24 février 2003Date d'inscription 2 mars 2010 Dernière intervention - 1 nov. 2007 à 17:39
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
neigedhiver 2492 Messages postés jeudi 30 novembre 2006Date d'inscription 14 janvier 2011 Dernière intervention - 1 nov. 2007 à 18:32
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
malalam 10918 Messages postés lundi 24 février 2003Date d'inscription 2 mars 2010 Dernière intervention - 1 nov. 2007 à 20:34
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
agparchitecture 88 Messages postés jeudi 9 mars 2006Date d'inscription 7 novembre 2010 Dernière intervention - 5 nov. 2007 à 08:55
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.