Re: Table Copy.

From: "Michael Paesold" <mpaesold(at)gmx(dot)at>
To: "PostgreSQL Server" <postgres(at)rsd(dot)it>, <pgsql-sql(at)postgresql(dot)org>
Subject: Re: Table Copy.
Date: 2002-09-19 18:10:46
Message-ID: 005501c26007$e2aa3bc0$4201a8c0@beeblebrox
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

Alex wrote:
> HI!
>
> I'm new to postgres. I need to have a table as a copy of another one.
>
> Example:
>
> CREATE TABLE one (
> fileda INTEGER,
> filedb INTEGER,
> filedc INTEGER );
>
> CREATE TABLE two (
> fileda INTEGER,
> filedb INTEGER,
> filedc INTEGER );
>
> As on insert to table one I should get the same insert on table two.
> As on delete to table one I should get the same delete on table two.
> As on update to table one I should get the same update on table two.
>
> Can someone provide the examples i can study ?

You could do it with RULEs. Here is an example how you would do the DELETE.

CREATE RULE copy_one_to_two AS
ON DELETE TO one
DO
DELETE FROM two
WHERE two.fileda=OLD.fileda
AND two.filedb=OLD.filedb
AND two.filedc=OLD.filedc;

You should change the where clause if you have a primary key on that table.
I am presuming fileda/filedb/filedc are unique in combination...
Read the section of the docs about RULEs for INSERT and UPDATE examples.

Regards,
Michael Paesold

In response to

  • Table Copy. at 2002-09-19 15:56:04 from PostgreSQL Server

Browse pgsql-sql by date

  From Date Subject
Next Message Ricardo Javier Aranibar León 2002-09-19 19:11:40 problem with query
Previous Message Andreas Joseph Krogh 2002-09-19 17:42:54 Re: Stripping white-space in SELECT statments