Re: Using a trigger with an object-relational manager

From: PFC <lists(at)peufeu(dot)com>
To: "Rick Schumeyer" <rschumeyer(at)ieee(dot)org>, pgsql-general(at)postgresql(dot)org
Subject: Re: Using a trigger with an object-relational manager
Date: 2007-05-23 06:22:24
Message-ID: op.tsrnzmqxcigqcu@apollo13
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general


> I'm using Ruby on Rails and have two tables, A and B. Every row in A
> needs a corresponding row in B. A also contains a FK pointing to B.
>
> I created a before insert trigger on A that inserts a new row in B, and
> sets the FK in A. This seems to be running fine.

So, A has a b_id field linking to B ?

If you need a 1-1 relationship, you could try instead to use the same
primary key in B than in A :

A : id SERIAL PRIMARY KEY
B : id INTEGER PRIMARY KEY (not SERIAL)

Then, AFTER INSERT trigger on A checks the value the sequence put in A.id
and inserts in B with this value as the PK.

Postgres has INSERT ... RETURNING which is a very clean and elegant
solution but Rails never heard about it...

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Albe Laurenz 2007-05-23 07:12:47 Re: Lock table, Select for update and Serialization error
Previous Message sudhir 2007-05-23 04:51:14 Re: Lock table, Select for update and Serialization error