pg.ddx.io  pgsql-sql@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Jaime Casanova <systemguards@gmail.com>
To: J Crypter <jcrypter@yahoo.de>
Cc: pgsql-sql@postgresql.org
Subject: Re: instead of trigger in pg
Date: Wed, 28 Dec 2005 11:03:32 -0500
Message-ID: <c2d9e70e0512280803hdb76fedl5cafba5170efad7a@mail.gmail.com> (raw)
In-Reply-To: <20051228152823.2471.qmail@web26001.mail.ukl.yahoo.com>
References: <20051228152823.2471.qmail@web26001.mail.ukl.yahoo.com>

On 12/28/05, J Crypter <jcrypter@yahoo.de> wrote:
> Hi,
>
> I would like to implement a 1:n relation between two
> tables.
> An auto-generated number should be used as primary key
> which connects both tables.
> Example:
>
> table 1:
> name | number (prim_key)
>
> table 2:
> country | number_table1 (foreign key)
>
> View:
> number_table1 | name | country
>
> I would like to insert into both tables in one step.
> "Insert into view (name,
> country)values('name','country');"
>
> Oracle supports an instead-of-trigger but Postgres
> doesn't do this.
>

postgres uses rules for this situation... and yes there are INSTEAD OF rules...

> CREATE or replace FUNCTION insertInto() RETURNS
> trigger AS '
>    BEGIN
>        insert into table1(name)values(NEW.name);
>        insert into
> table2(number,country)values(NEW.number,NEW.country);
>
>        RETURN NEW;
>    END;
> ' LANGUAGE plpgsql;
>
> CREATE TRIGGER insert_TR BEFORE INSERT OR UPDATE ON
> view
>    FOR EACH ROW EXECUTE PROCEDURE insertInto();
>
>
> I would like to implement something like this but I
> don't know how to do.
>
> Thank you for you help!
>
> Jakob
>
>
>
>
>
>
> ___________________________________________________________
> Telefonate ohne weitere Kosten vom PC zum PC: http://messenger.yahoo.de
>
> ---------------------------(end of broadcast)---------------------------
> TIP 6: explain analyze is your friend
>


--
Atentamente,
Jaime Casanova
(DBA: DataBase Aniquilator ;)



view thread (2+ messages)

Message-ID: <c2d9e70e0512280803hdb76fedl5cafba5170efad7a@mail.gmail.com>
Permalink:  ../c2d9e70e0512280803hdb76fedl5cafba5170efad7a@mail.gmail.com/
Also on:    postgresql.org/message-id/c2d9e70e0512280803hdb76fedl5cafba5170efad7a@mail.gmail.com

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-sql@postgresql.org
  Cc: systemguards@gmail.com, jcrypter@yahoo.de
  Subject: Re: instead of trigger in pg
  In-Reply-To: <c2d9e70e0512280803hdb76fedl5cafba5170efad7a@mail.gmail.com>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox