Skip site navigation (1) Skip section navigation (2)

Peripheral Links

Header And Logo

PostgreSQL
| The world's most advanced open source database.

Site Navigation

Search archives
  Advanced Search

Re: continuous copy/update one table to another


  • From: John R Pierce <pierce(at)hogranch(dot)com>
  • To: Terry <td3201(at)gmail(dot)com>
  • Cc: PostgreSQL <pgsql-general(at)postgresql(dot)org>
  • Subject: Re: continuous copy/update one table to another
  • Date: Sun, 28 Feb 2010 14:32:03 -0800
  • Message-id: <4B8AEEE3.9050806@hogranch.com> <text/plain>

Terry wrote:
Hello,

I am looking for a way to copy all the data from one table to another
on a regular basis, every 5 minutes let's say.

INSERT INTO table2 SELECT * FROM table1;

The above will copy all the data as is and insert it into the other
table.  What happens if I rerun it again?  Will it just append table1
again into table2?  How can I have it only insert rows that are
different?  Would that be a program to lookup the most last record in
table 1 and then a query to only select after that row for the insert
into table2?


both tables should have a serial 'id' (or bigserial if you expect over 2 billion entries), and use something like ...

insert into table2 select * from table1 as t1 where t1.id > (select max(t.id) from table2 as t);


i haven't tested this but I think it should work. as long as id is indexed in both tables





Home | Main Index | Thread Index

Privacy Policy | About PostgreSQL
Copyright © 1996 – 2012 PostgreSQL Global Development Group