On Wed, Feb 1, 2017 at 4:15 PM, Johann Spies <johann.sp...@gmail.com> wrote:
> How do I formulate the on conflict do update-section of this query? When > I try set title=q.title, q is unknown. When I try and change 'title' in > the select-part to something else and try title=ti I get the message that > ti cannot be used in this part of the query. > > INSERT INTO wos_2017_1.article (ut, > title, > author_count)WITH p AS ( > SELECT > ARRAY [ ARRAY [ 't', 'some_namespace' ] ] AS ns), > q AS ( > SELECT > ut, > unnest (xpath ('//t:title[@type= "item"]/text()', > xml, > p.ns))::text title, > unnest (xpath ('//t:summary/t:names/@count', > xml, > p.ns))::TEXT::INTEGER AS author_count > FROM > p, > source.cover_2016)SELECT > ut, > regexp_replace (regexp_replace (regexp_replace (title, '<', '<', 'g'), > '&', '&', 'g'), '>', '>', 'g') > title, > author_countFROM > q > > ON CONFLICT (ut) > DO UPDATESET > title = title, > author_count = author_count; > > > In the ON CONFLICT... SET we need to use EXCLUDED keyword. ON CONFLICT (ut) DO UPDATE SET title = EXCLUDED.title, author_count = EXCLUDED.author_count; -- Thank you, Beena Emerson Have a Great Day!