CREATE TABLE aa ( a_col1 text ); CREATE TABLE bb ( b_col1 text ); This update works: UPDATE bb SET b_col1 = aa.a_col1 FROM aa WHERE bb.b_col1 <> aa.a_col1; This does not: UPDATE bb SET bb.b_col1 = aa.a_col1 FROM aa WHERE bb.b_col1 <> aa.a_col1; Error: column "bb" of relation "bb" does not exist. postgres 8.1.2 Maybe in a future version the alias can be allowed? Perhaps someone wanted to avoid updating the wrong column on accidentand put this in as a safety net? Mike
"Mike G." <mike@thegodshalls.com> writes:
> UPDATE bb
> SET bb.b_col1 = aa.a_col1
> FROM aa
> WHERE bb.b_col1 <> aa.a_col1;
> Error: column "bb" of relation "bb" does not exist.
> Maybe in a future version the alias can be allowed?
No. It's contrary to SQL spec, and if we allowed it we'd have an
ambiguity: are you assigning to field b_col1 of bb, or assigning
to field b_col1 of a composite-type field named bb in table bb?
regards, tom lane
Сайт использует файлы cookie для корректной работы и повышения удобства. Нажимая кнопку «Принять» или продолжая пользоваться сайтом, вы соглашаетесь на их использование в соответствии с Политикой в отношении обработки cookie ООО «ППГ», в том числе на передачу данных из файлов cookie сторонним статистическим и рекламным службам. Вы можете управлять настройками cookie через параметры вашего браузера