Re: Spot the error in my plpgsql... - Mailing list pgsql-general

From Adam Haberlach
Subject Re: Spot the error in my plpgsql...
Date
Msg-id 20010116122228.A6550@newsnipple.com
Whole thread Raw
In response to Re: Spot the error in my plpgsql...  (Mirko Zeibig <mirko@picard.inka.de>)
Responses Re: Spot the error in my plpgsql...  (Mirko Zeibig <mirko@picard.inka.de>)
List pgsql-general
On Tue, Jan 16, 2001 at 12:58:41PM +0100, Mirko Zeibig wrote:
> On Mon, Jan 15, 2001 at 07:54:26PM -0800, Adam Haberlach wrote:
> > I've got the following procedure...
> >
> > DROP FUNCTION "blank_referring_devices" ();
> > CREATE FUNCTION "blank_referring_devices" () RETURNS opaque AS
> > '
> > BEGIN
> >     EXECUTE ''UPDATE t_device SET accountid=NULL WHERE accountid =''
> >     || quote_literal(OLD.accountid);
> > END;
> > '
> > LANGUAGE 'plpgsql';
> >
> > DROP TRIGGER "t_account_blank_devrel" ON "t_account";
> > CREATE TRIGGER "t_account_blank_devrel" BEFORE DELETE ON "t_account"
> > FOR EACH ROW EXECUTE PROCEDURE "blank_referring_devices" ();
>
> Hello Adam,
> of course I do not know what you want exactly, but why do you need EXECUTE
> for this?
>
> BEGIN
>          UPDATE t_device
>                   SET accountid=NULL
>                  WHERE accountid=quote_literal(OLD.accountid);
> END;

    This seems to be what I want, but how does this differ from the 'EXECUTE'
syntax, which I find is not yet in released versions of Postgres?  I'll try
this out...

> should do as well. Maybe you are even better of with a foreign key
> constraint, where you may include 'on delete set null' as well.
>
> alter table T_DEVICE
>             add constraint FK_T_DEVICE_ACCOUNTID
>             foreign key (ACCOUNTID)
>             references T_ACCOUNT(ACCOUNTID)
>             on delete set null;

    Yep, this is the other option.  This database wasn't really designed
with any kind of formal referential integrity, so I felt that the more
ad-hoc stuff I was doing above would be more flexible.

--
Adam Haberlach            |A cat spends her life conflicted between a
adam@newsnipple.com       |deep, passionate, and profound desire for
http://www.newsnipple.com |fish and an equally deep, passionate, and
'88 EX500                 |profound desire to avoid getting wet.

pgsql-general by date:

Previous
From: "J.H.M. Dassen (Ray)"
Date:
Subject: Re: date/time
Next
From: "Mike Miller"
Date:
Subject: Unknown Type 'ame' [urgent]