Re: How do I access the current row from a trigger?

From: Stephan Szabo <sszabo(at)megazone23(dot)bigpanda(dot)com>
To: Magnus Sjöstrand <mange(at)NO-SPAMORAMA(dot)mjaunet(dot)org>
Cc: <pgsql-sql(at)postgresql(dot)org>
Subject: Re: How do I access the current row from a trigger?
Date: 2002-07-03 23:43:26
Message-ID: 20020703164001.X11710-100000@megazone23.bigpanda.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql


On Wed, 3 Jul 2002, [ISO-8859-1] Magnus Sjstrand wrote:

> Hi,
>
> I have a table as:
> create table sections (
> id serial not null primary key,
> parent_id references sections(id)
> );
>
> there is only one row where the parent_id is NULL, and that is the root
> section, all others refers to a section. Now I want to create a trigger,
> so that whenever I delete a section I can delete all sections that has
> the deleted section as parent, which in turn will run the triggers for
> the deleted sections. Thus I will be able to clear an entire branch with
> only one SQL command from the client.

How about just adding ON DELETE CASCADE to the references constraint?

But that doesn't answer the general question about access, so...

> is there any way to do this in PostgreSQL? I couldn't find a way of
> refering to the current row in a trigger in the postgresql reference.

I believe it's somewhat dependant on the procedural language used
to define the trigger function. In plpgsql, you should be able to use OLD
and NEW to get column values like OLD.id in the case of an after delete
trigger.

In response to

Browse pgsql-sql by date

  From Date Subject
Next Message Christopher Kings-Lynne 2002-07-04 01:38:33 Re: Possible Bug regarding temp tables (sql or psql?)
Previous Message Jie Liang 2002-07-03 22:45:25 postgres7.2.1 upgrading