Re: Update two tables returning id from insert CTE Query

From: "David G(dot) Johnston" <david(dot)g(dot)johnston(at)gmail(dot)com>
To: Patrick B <patrickbakerbr(at)gmail(dot)com>
Cc: pgsql-general <pgsql-general(at)postgresql(dot)org>
Subject: Re: Update two tables returning id from insert CTE Query
Date: 2016-09-27 19:54:12
Message-ID: CAKFQuwa=iLt9vsbp-wbB+q8j+FnSruvF2Hn5wNMiYaAG27ZP-w@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On Mon, Sep 26, 2016 at 9:06 PM, Patrick B <patrickbakerbr(at)gmail(dot)com> wrote:

>
> I'm doing this now:
>
>
> sel AS (
>> SELECT i.id AS c_id
>> FROM (select id, row_number() OVER (ORDER BY id) AS rn FROM ins_table_1) i
>> JOIN rows s USING (rn)
>> )
>> UPDATE table_2 SET c_id =
>> (
>> SELECT c_id
>> FROM sel
>> ORDER BY c_id
>> )
>> WHERE clientid = 124312;
>
>
> But I get *ERROR: more than one row returned by a subquery used as an
> expression*
>
>
​And this surprises you why?

I'd advise you get whatever it is you are trying to accomplish working
using multiple queries in a transaction, probably with the help of
temporary tables, then post that self-contained working example and ask for
suggestions on how to turn it into a single query using CTEs (if its ever
worth the effort at that point).

David J.​

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Patrick B 2016-09-27 19:59:42 Re: Update two tables returning id from insert CTE Query
Previous Message Israel Brewster 2016-09-27 19:22:25 Re: Determining server load