UPDATE syntax

Поиск
Список
Период
Сортировка
От David Greco
Тема UPDATE syntax
Дата
Msg-id 187F6C10D2931A4386EE8E58E13857F612930DC9@BY2PRD0811MB415.namprd08.prod.outlook.com
обсуждение исходный текст
Ответы Re: UPDATE syntax  ("Albe Laurenz" <laurenz.albe@wien.gv.at>)
Список pgsql-general

Need some help with UPDATE syntax. I am attempting to do something like this:

 

WITH default_facility AS (

                SELECT facility_id,

                inkjetorlabel

                FROM engagement_facility_defs

                WHERE engagement_facility_def_id = 8

)

UPDATE engagement_facilities SET (

                facility_id,

                inkjetorlabel

)

= ( default_facility.* )

FROM default_facility

WHERE engagement_facilities.engagement_id =3

 

 

 

Postgres errors out on the SET() saying “number of columns does not match number of values”.  Also tried default_facility.* without the parenthesis but it does not like that syntax. This example is a bit simplified, in reality there are 90 columns in both lists.

 

Is this syntax not possible? I have rewritten it to this form which works, but I rather like the CTE syntax instead.

 

UPDATE engagement_facilities SET (

                facility_id,

                inkjetorlabel

)

= ( df.facility_id, df.inkjetorlabel )

FROM   engagement_facility_defs df

WHERE engagement_facility_def_id = 8

AND engagement_facilities.engagement_id =3

 

 

 

 

В списке pgsql-general по дате отправления:

Предыдущее
От: Chris Angelico
Дата:
Сообщение: Re: youtube video on pgsql integrity
Следующее
От: Peter Kroon
Дата:
Сообщение: set value var via execute