Bonjour à tous,
On Thursday 12 March 2009 10:19:29 c(dot)maumont(at)univitis(dot)fr wrote:
> UPDATE formu SET soc = '2' WHERE n_formu in (SELECT n_formu FROM cp WHERE
> n_tcp = 11 OR n_tcp = 12);
[...]
> (sur une base de test OUF !).
[...]
> Y-a-il une subtilité SQL qui m'échappe ?
Deux en fait.
La première, toute opération de maintenance interactive commence par BEGIN;
On ne dit pas "OUF c'était en test", on dit ROLLBACK.
La seconde, les sous-requêtes peuvent être corrélées dans PostgreSQL, cela
signifie que n_formu dans le SELECT existe bien, c'est la valeur « récupérée »
au dessus dans l'UPDATE. Pour distinguer d'une colonne dans la table cp, tu
peux peut être essayer SELECT cp.n_formu dans la sous-requête.
Cordialement,
--
dim