Re: [GENERAL] Recommended Procedure for Archiving Table Data

2004-10-29 Thread Joshua D. Drake
Sally Ruggero wrote:
I need advice on archiving data from our production database.
 
Each night I would like to save and remove a day's data from two weeks 
ago, from all the tables. I know how to delete the data--though our 
schema does not specify cascaded deletes. However, I can't figure out 
how to save the desired data. I'd like to save it in SQL insert 
statement format, but I can't see how to get the data out. If I use 
psql to create a temp table with the old data in it, then the table 
disappears when I exit psql and I can't dump it with pg_dump. If I 
make a new table and put the data in it, then when I dump it with 
pg_dump, all the insert statements have the new table name rather than 
the original table name. I'm sure there's a good solution for this 
standard problem. Does anyone have a suggestion?
Create a temporary table from a query definition...
BEGIN;
create temp table archive_table as select * from foo where date between 
delete from foo where date between ...
copy foo to '/tmp/archive.copy'
commit;
You probably want to at least do some basic checks on the data like row 
counts
but that will archive out the data.

You could also just create an archival schema that you could push stuff to.
Sincerely,
Joshua D. Drake

 
Thanks,
Sally

--
Command Prompt, Inc., home of Mammoth PostgreSQL - S/ODBC and S/JDBC
Postgresql support, programming shared hosting and dedicated hosting.
+1-503-667-4564 - [EMAIL PROTECTED] - http://www.commandprompt.com
PostgreSQL Replicator -- production quality replication for PostgreSQL
begin:vcard
fn:Joshua Drake
n:Drake;Joshua
org:Command Prompt, Inc.
adr:;;PO Box 215 ;Cascade Locks;OR;97014;US
email;internet:[EMAIL PROTECTED]
title:Consultant
tel;work:503-667-4564
tel;fax:503-210-0334
x-mozilla-html:FALSE
url:http://www.commandprompt.com
version:2.1
end:vcard


---(end of broadcast)---
TIP 1: subscribe and unsubscribe commands go to [EMAIL PROTECTED]


[GENERAL] Recommended Procedure for Archiving Table Data

2004-10-29 Thread Sally Ruggero




I need advice on archiving data from our production 
database. 
 
Each night I would like to save and remove 
a day's data from two weeks ago, from all the tables. I know how to delete 
the data--though our schema does not specify cascaded deletes. However, I can't 
figure out how to save the desired data. I'd like to save it in SQL 
insert statement format, but I can't see how to get the data out. If I use psql 
to create a temp table with the old data in it, then the table disappears when I 
exit psql and I can't dump it with pg_dump. If I make a new table and put the 
data in it, then when I dump it with pg_dump, all the insert statements have the 
new table name rather than the original table name. I'm sure there's a good 
solution for this standard problem. Does anyone have a suggestion?
 
Thanks,
Sally