Re: adding data to tables with sequences - Mailing list pgsql-novice

From Tom Lane
Subject Re: adding data to tables with sequences
Date
Msg-id 10926.1046358807@sss.pgh.pa.us
Whole thread Raw
In response to adding data to tables with sequences  ("Jennifer Lee" <jlee@scri.sari.ac.uk>)
List pgsql-novice
"Jennifer Lee" <jlee@scri.sari.ac.uk> writes:
> what I've tried is
> INSERT INTO data_value (data_id, element_number, value)
> SELECT d.data_id, nextval('element_seq'), t.value
> FROM data d, temp_data t, data_type dt
> WHERE d.type_id = dt.type_id
> AND t.marker = dt.description
> ORDER BY t.temp_id;

> This works only the element_numbers using the sequences are in a
> random order. The values seem to be inserted in the order of the
> temp_id so if I do a select * from the table the are listed in the order I'd
> like them in.

Well, yeah: you asked to ORDER BY temp_id, and that happens after the
SELECT-list expressions are computed.  You could probably get the
behavior you want with a two-level SELECT:

INSERT INTO data_value (data_id, element_number, value)
SELECT data_id, nextval('element_seq'), value
FROM
(SELECT d.data_id, t.value
 FROM data d, temp_data t, data_type dt
 WHERE d.type_id = dt.type_id
 AND t.marker = dt.description
 ORDER BY t.temp_id) ss;


            regards, tom lane

pgsql-novice by date:

Previous
From: "Aspire Something"
Date:
Subject: Function Comit
Next
From: Tom Gilbert
Date:
Subject: initdb hangs even though ipc-daemon is running?