Le 14/10/2012 19:19, Pierre Graber a écrit : > Le 14. 10. 12 18:53, Marc Romano a écrit : >> Il me semble que la syntaxe exacte devrait être : >> >> UPDATE Membres, Ajout >> SET Membres.IdFiche = Ajout.IdFiche, Membres.MdpFiche = Ajout.MdpFiche >> WHERE Membres.IdMembre = Ajout.IdMembre >> >> En cas de noms de champ identiques entre deux tables, l'utilisation du >> nom canonique est obligatoire pour lever toute ambiguïté. D'autre part, >> lorsqu'on utilise UPDATE dans un contexte multi-tables, on doit déclarer >> les tables utilisées après UPDATE, qu'elles soient cibles ou sources de >> mise à jour. Ici, l'erreur "table not found" concerne à mon avis la >> table Ajout, pas la table Membres. >> >> Sous une base MySQL, la syntaxe que j'indique fonctionne. Je ne sais pas >> ce qu'il en est sous HSQL, mais je ne vois pas de raison que ça ne >> marche pas. >> >> Cordialement ; >> >> Marc Romano > Merci Marc, > > Ta proposition m'a aussi semblé sensée, mais elle aboutit encore à : > «Table not found in statement [UPDATE Membres]» > (c'est moi qui encadre de guillemets). > > Cordialement, > > Pierre > > -- > *Pierre Graber* > Enseignant > CH-2022 Bevaix > <http://pcpg.net> En fait, j'ai l'impression (à confirmer) que le moteur HSQL ne prend pas en charge l'utilisation d'UPDATE en multi-tables. Je viens de faire une recherche sur la doc en ligne de ce moteur, les explications données pour UPDATE ne concernent qu'une utilisation mono-table.
En revanche, il semble qu'il permettrait (sous réserves) l'utilisation de MERGE, mais outre le fait que ce n'est pas une instruction SQL très pratique, un petit essai que je viens de faire sur un petit bout de base monté sous LibO 3.6.1 me renvoie une erreur "unexpected token MERGE", ce qui semble vouloir dire que le moteur implanté sous LibO ne prévoit pas cette instruction. Là, on coince... Il faudrait avoir quelques informations de la part des développeurs, pour savoir exactement ce qui est implanté comme fonctionnalités. J'avoue que je n'avais jamais tenté ce genre de mise à jour sous HSQL, utilisant prioritairement des bases MySQL interfacées avec LibO. Désolé de ne pouvoir t'aider sur ce coup-ci. Je vais chercher une solution de contournement, mais sans promesse de résultat ! Cordialement ; Marc -- Envoyez un mail à users+h...@fr.libreoffice.org pour savoir comment vous désinscrire Les archives de la liste sont disponibles à http://listarchives.libreoffice.org/fr/users/ Tous les messages envoyés sur cette liste seront archivés publiquement et ne pourront pas être supprimés