Re: INSERT / UPDATE into 2 inner joined table simultaneously

From: Lou <lou(at)dayspringpublisher(dot)com>
To: Christopher Swingley <cswingle(at)swingleydev(dot)com>
Cc: pgsql-sql(at)lists(dot)postgresql(dot)org
Subject: Re: INSERT / UPDATE into 2 inner joined table simultaneously
Date: 2019-03-06 21:36:21
Message-ID: cd018283-810e-9533-60b0-ac81dbd94840@dayspringpublisher.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

Hi Chris,

Thank you for answering so quickly.

On 3/6/19 2:11 PM, Christopher Swingley wrote:
> Lou,
>
> On Wed, Mar 6, 2019 at 10:59 AM Lou <lou(at)dayspringpublisher(dot)com> wrote:
>> How can I INSERT new rows into both tables simultaneously with automatically created id numbers, and how can I UPDATE both tables simultaneously?
> Although I have no idea why you would want to do this, you can insert
> data into two tables with one query using a common table expression:
>
> WITH cinsert AS (
> INSERT INTO c (id, name) VALUES (1, 'Jones')
> RETURNING id, name)
> INSERT INTO p (id, name) (SELECT * FROM cinsert);
>
> Cheers,
>
> Chris

Sorry, I did not clearly explain what I'm trying to do. The two tables
contain different data. The c table contains company data, and the p
table contains personal data about my contact person in that company.
The only data the two tables share is the contents of c.id which must be
inserted into the p.c_id field (so that the two tables can later be
inner joined by SELECT). I've programmed a data entry screen which shows
the fields of both tables together, so that the data for both tables can
be inserted or edited in one sitting. The data for both tables needs to
be saved at the same time so that the id number of table c can be copied
into the c_id field of table p.

Lou

In response to

Responses

Browse pgsql-sql by date

  From Date Subject
Next Message Christopher Swingley 2019-03-06 21:41:13 Re: INSERT / UPDATE into 2 inner joined table simultaneously
Previous Message Christopher Swingley 2019-03-06 20:11:23 Re: INSERT / UPDATE into 2 inner joined table simultaneously