From: | Ludovic Levesque <luddic(at)gmail(dot)com> |
---|---|
To: | c(dot)maumont(at)univitis(dot)fr |
Cc: | pgsql-fr-generale(at)postgresql(dot)org |
Subject: | Re: Truc bizarre dans where in |
Date: | 2009-03-12 09:58:12 |
Message-ID: | 162718d40903120258p62bf01d0pb8cdfd309e108686@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-fr-generale |
Bonjour,
dans le premier UPDATE, la colonne n_formu existe dans le contexte, vu
qu'elle est présente dans la table formu. Ca revient à avoir une
jointure simple sans conditions, à peu près comme ça si c'était un
SELECT:
SELECT n_formu FROM formu, cp WHERE (n_tcp = 11 OR n_tcp = 12) AND
n_formu = n_formu;
qui renvoie tous les enregistrements possibles de formu, d'où l'update
sur toute la table
Ludo
2009/3/12 <c(dot)maumont(at)univitis(dot)fr>:
> Bonjour,
>
> Je viens de tomber sur un truc qui m'interpelle :
>
> J'ai lancé une requête contenant une erreur :
>
> UPDATE formu SET soc = '2' WHERE n_formu in (SELECT n_formu FROM cp WHERE n_tcp = 11 OR n_tcp = 12);
>
> L'erreur c'est qu'il n'y a pas de colonne n_formu dans la table cp.
> J'aurais du AMHA avoir une sortie en erreur alors que l'update a été effectué sur toutes les lignes de la table (sur une base de test OUF !).
>
> C'est d'autant plus drôle que si je lance :
>
> UPDATE formu SET soc = '2' WHERE n_formu in (SELECT toto FROM cp WHERE n_tcp = 11 OR n_tcp = 12);
>
> J'ai bien une erreur : ERREUR: la colonne « toto » n'existe pas
>
> Y-a-il une subtilité SQL qui m'échappe ?
>
> DEBIAN/ETCH
> psql -V
> psql (PostgreSQL) 8.1.11
>
> Cordialement.
>
> Christophe Maumont
>
>
> --
> Sent via pgsql-fr-generale mailing list (pgsql-fr-generale(at)postgresql(dot)org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-fr-generale
>
From | Date | Subject | |
---|---|---|---|
Next Message | Marc Cousin | 2009-03-12 10:01:53 | Re: Truc bizarre dans where in |
Previous Message | Dimitri Fontaine | 2009-03-12 09:55:57 | Re: Truc bizarre dans where in |