On 12/08/2011 7:13 AM, Rich Shepard wrote:

I have a .csv file of approximately 10k rows to copy into this table. My
two questions which have not been answered by reference to my postgres
reference book or Google searches are:

1) Will the sequence automatically add the nextval() to each new record as
the copy command runs?

No, AFAIK COPY input needs to match the table structure and can't have default fields etc.

2) Many of these rows almost certainly are already in the table. I would
like to remove duplicates either during the COPY command or immediately
after. I'm considering copying the new data into a clone of the table then
running a SELECT to add only those rows in the new cloned table to the
existing table.

Rather than removing them after, I'd recommend COPYing into a temporary staging table, then doing an

INSERT INTO realtable SELECT FROM stagingtable LEFT OUTER JOIN realtable ON (conditions) WHERE realtable.primarykey IS NULL;

... where "conditions" are whatever rules you use to decide that a row in the real table is the same as a row in the staging table.

In other words: Only insert a row into the final destination table if it does not already exist in the final destination table.

--
Craig Ringer

--
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general

Reply via email to