website logo
Auteur
avatar
capcaverne

Forum » » Le coin des codeurs » » Mysql : insérer un élément si il n'existe pas


Posté : 15 déc. 2003 à 13:29 icone du post

euh...
SQL n'est pas un langage conditionnel à ma connaissance (un peu vieille il est vrai) donc ca veux dire que tu ne peux pas faire en SQL pur des truc du genre :
si (l'enregistrement existe) alors je ne fait rien (ou UPDATE)
sinon j'insère.
Le langaege SQL a pour seul but de rentrer des données dans une base ou d'interroger cette base mais pas de faire des traitements conditionnels. Ces traitement doivent êtres fait avec un autre langage (PHP,C, COBOL ou autre) qui lui ,va se charger de toute la partie structure (si...alors...sinon...)
Pour plus d'infos je te conseille vivement de faire un tour dans la doc SQL (ou MySQL).

a moins que tu puisse utiliser des requetes de ce type :
INSERT INTO matable (champ_1,champs_nom,...,champs_n) VALUES (val_1,val_nom,...,val_n)
WHERE NOT EXIST (SELECT nom FROM matable WHERE matable.nom='val_nom')
ou encore :
INSERT INTO matable (champ_1,champs_nom,...,champs_n) VALUES (val_1,val_nom,...,val_n)
WHERE val_nom NOT IN (SELECT nom from matable)

Ce type de boucle marche pour des SELECT en SQL pur mais je ne sais pas si ca marche avec des INSERT ni avec MySQL.
Par contre si ca marche cela risque d'être tres long ... (à cause du 2 eme SELECT imbriqué)

[ Message édité par : capcaverne : 15-12-2003 13:35 ]

Cet article provient de NPDS
https://www.npds.org/viewtopic.php?topic=9089&forum=5