dvdstory
Messages postés192Date d'inscriptiondimanche 23 janvier 2005StatutMembreDernière intervention10 août 2009
-
5 avril 2008 à 15:33
dvdstory
Messages postés192Date d'inscriptiondimanche 23 janvier 2005StatutMembreDernière intervention10 août 2009
-
6 avril 2008 à 18:44
Bonjour à tous.
Je veux ajouter un pseudo dans ma table uniuement si le pseudo n'est pas encore présent dans la table.
Donc je dois vérifier si le pseudo n'est pas déja présent dans la table, j'esaye de faire ça avec une structure IF.
Mais ça ne marche pas.
IF (SELECT COUNT(*) FROM `matablel` WHERE `pseudo` = 'pierre')=0 THEN
INSERT INTO `matable` (`pseudo`)
VALUES ('pierre')
END IF
Voici le message d'erreur que MySQL me renvoie
#1064 - You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use
near 'IF( SELECT COUNT( * ) FROM `matable` WHERE `pseudo` = 'pierre'
)=0 THEN INSERT ' at line 1
dvdstory
Messages postés192Date d'inscriptiondimanche 23 janvier 2005StatutMembreDernière intervention10 août 2009 5 avril 2008 à 16:52
C'est déja fait mais le pb c'est que ça n'est qu'une partie de la requette (je n'ai pas mis le reste pour ne pas encombrer et exposé mon pb clairement car si j'exécute le reste de la requette séparément, elle fonctionne nikel chrome), et que si il y a une erreur, MySQL n'exécute pas la suite.http://www.UnrealNetwork.net
yoman64
Messages postés962Date d'inscriptionsamedi 19 janvier 2002StatutMembreDernière intervention 2 août 20102 6 avril 2008 à 17:59
Salut,
Lol, vous êtes bêtes c'est pas du visual Basic ça se ressemble même pas... (Voir comment les champs et les strings sont entourés sans parler du insert sur deux lignes, en vb il fauderait le concatener avec un \...C'est clairement du SQL)
Enfin oui il y a bien une structure IF en SQL sauf que je ne crois pas qu'elle soit adaptée à ton problème, il y a sans doute de meilleure façon de faire (Il fauderait voir ta requête complete et savoir quel résultat tu attends pour t'aider plus).
dvdstory
Messages postés192Date d'inscriptiondimanche 23 janvier 2005StatutMembreDernière intervention10 août 2009 6 avril 2008 à 18:44
Réponse à [auteur/YOMAN64/3282.aspx yoman64]
C'est déja la requête complète, enfaite le reste c'est d'autres requettes séparées par un point virgule ' ; ' qui sont totalement indépendantes et interagisse avec d'autre tables.
Le pb c'est que s'il y a une erreur dans une des requêtes indépendantes alors MySQL n'exécute plus les requêtes suivantes (même si elle sont indépendante et séparées par un point virgule).
La solution serait que j'envoie les requêtes indépendantes séparément avec PHP et pas toutes en même temps comme je le fait actuellment mais pour les performences c'est pas top du tout et sa ralonge mon code.
PS: j'ai regardé mon livre sur MySQL5,
"MySQL Le guide complet"
EAN13: 9782742968732
ISBN: 2-7429-6873-3
J'ai remarqué que les explications sur le "IF THEN" faisait partie du chapitre 14 "Le SQL dynamique" et dans le sous chapitre 14.1 "Les procédures stockées".
Je me suis demandé que peut être la structure IF THEN ne peut être utilisé que dans les procédures stockées.