Duncan McDonald wrote:
Hi All,
I was wondering whether there was a way to back up partial sets of data
as INSERT statements? Pg_dump seems only to handle whole databases or
tables.
I have two identical databases (primary and backup) and I need to
transfer a small portion of missing data from one to the other. Is there
an easier way to do this rather than SELECT-ing the interval then
parsing the ouput to look like INSERT statements?
I can think of a couple of ways -
COPY (SELECT * FROM myPrimaryTable WHERE id<200) TO '/tmp/myData';
you can then
COPY myBackupTable FROM '/tmp/myData';
Another option is to create a table to hold the selected rows then
SELECT * INTO myTempTable FROM myPrimaryTable WHERE id<200;
then use pg_dump --table=myTempTable > /tmp/myData
the --inserts option of pg_dump will export as INSERT's if that is the
way you want to do it. You will need to do a find and replace on the
INSERT's to change the table name though.
--
Shane Ambler
pgSQL@xxxxxxxxxxxxxxxx
Get Sheeky @ http://Sheeky.Biz