From: | "Scott Marlowe" <scott(dot)marlowe(at)gmail(dot)com> |
---|---|
To: | "Christopher Maier" <maier(at)med(dot)unc(dot)edu> |
Cc: | pgsql-sql(at)postgresql(dot)org |
Subject: | Re: Best way to restrict detail rows? |
Date: | 2008-12-08 21:28:29 |
Message-ID: | dcc563d10812081328i5c0630afr662656e910cd26ba@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-sql |
On Mon, Dec 8, 2008 at 1:56 PM, Christopher Maier <maier(at)med(dot)unc(dot)edu> wrote:
> I have a "master-detail" kind of situation, as illustrated here:
>
> CREATE TABLE master(
> id SERIAL PRIMARY KEY,
> foo TEXT
> );
>
> CREATE TABLE detail(
> id SERIAL PRIMARY KEY
> master BIGINT NOT NULL REFERENCES master(id),
> bar TEXT
> );
>
> (this is a simplification, of course)
>
> I would like a way to restrict the addition of new detail records, but only
> after the initial detail records have been inserted into the system.
After you create the table do something like this:
create rule detail_no_insert as on insert to detail do nothing;
create rule detail_no_update as on update to detail do nothing;
poof. no more updates or inserts work. Note that copy will still
work, as it doesn't fire rules. So, you can update the data with
copy, and otherwise not touch it.
From | Date | Subject | |
---|---|---|---|
Next Message | Scott Marlowe | 2008-12-08 21:29:49 | Re: Best way to restrict detail rows? |
Previous Message | Christopher Maier | 2008-12-08 20:56:57 | Best way to restrict detail rows? |