[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[linux] MySQL et UPDATE table



Bonsoir tout le monde,


Le "MySQL Reference Manual" mentionne que l'on peut faire des 
INSERT...VALUES(  ) ou des INSERT...SELECT( ). Or un certain nombre de tables 
contiennent des valeurs que l'on peut directement insérer et d'autres sont 
des résultats de SELECT. Ne pouvant mélanger les deux types d'INSERT, je 
commence par un INSERT....VALUES suivi d'un UPDATE sur le même tuple. 
(Il existe sûrement un moyen plus rapide mais je n'ai pas encore trouvé)
Selon la norme SQL2, la syntaxe suivante est possible:

UPDATE table_machin SET truc=(SELECT euh FROM tbl_1 WHERE  nom='bof') WHERE 
brol='Capharnaüm';

Mais MySQL me renvoie une erreur de syntaxe. Apparemment, ce SGBDR exige la 
syntaxe :

UPDATE table_machin SET truc=expr_1 WHERE brol='Capharnaüm';

Si expr_1 est une valeur provenant d'une autre table, il faut d'abord aller 
la rechercher.

Pour apprendre le SQL et à le manipuler, je me suis donc décider à apprendre 
en même temps Perl (et son module DBI). 
Heureusement qu'il existe celui-là... C'est quand même plus facile à 
travailler que directement avec le moniteur mysql.

Ma question: est-ce que MySQL accepte des UPDATE avec des requêtes 
imbriquées? Si oui, quelle en la syntaxe exacte?

D'avance merci.

Marc

[ Soyez précis dans vos sujets svp afin de déterminer directement  ]
[ le type de demande...                                            ]
[ Pour vous (dés)inscrire, aller sur http://linuxbe.org/ml.php     ]
[ Archives de la mailing list: http://archives.linuxbe.org/linux/  ]
[ http://LinuxBe.org              Contact: listmaster@linuxbe.org  ]