How to copy rows into same table efficiently - Mailing list pgsql-general

From Arun Suresh
Subject How to copy rows into same table efficiently
Date
Msg-id CA+7NA6aNAAKByWQ9yNN9kq7nDDk3+eyT95Ur9g60nRshmu8-xQ@mail.gmail.com
Whole thread Raw
Responses Re: How to copy rows into same table efficiently
Re: How to copy rows into same table efficiently
List pgsql-general

Dear PG experts,

We have a tenant discriminator column in our tables to enable storage of data from multiple
tenants. This column is also part of the composite primary key.
The customers may request creation of a tenant copy, which means if they currently have a
tenant id "ABCD", they would like to copy all data "where tenant_id = 'ABCD'" to a new copy tenant "XYZ".
The copy must also be done on the same table.

Current approach taken is to build a query like below:
INSERT INTO mytable (col1, col2, col3, col4) SELECT col1, 'XYZ', col3, col4 FROM mytable WHERE col2 = 'ABCD'

Is there a better way to do this?
There could be other tables with foreign key reference, would a simple ordering of the copy based on table relationship suffice?
Also if the table has millions of records, what are the things to take care of?


Regards,
Arun Suresh

pgsql-general by date:

Previous
From: Yi Sun
Date:
Subject: plpython3 package installation problem
Next
From: Vivekk P
Date:
Subject: Need recommendation on PARALLEL INDEX SCAN and PARALLEL APPEND