Hello, I'm trying to set up a trigger on insert or update
but when using the predefined variable ``OLD'' I get a
NOTICE from the trigger function about OLD not being defined yet.

Of course OLD is not defined when the function is triggered on INSERT
event, and I did not mention it if not inside a conditional block
checking for the TG_OP variable being 'UPDATE'.

For better understanding here is some code:

BEGIN
	IF TG_OP = 'UPDATE' THEN
		IF OLD.id <> NEW.id THEN
			-- do the work
		END IF
	END IF;
END;

Even when TG_OP != 'UPDATE' (INSERT event) I still get an error
message from the pl/pgsql compiler (the first time the trigger is fired).

What should I do then ? Is it still possible to use the same function
for UPDATE OR INSERT events ?

TIA

--san;

Mon, 22 Oct 2001 23:25:44 +0200
san@cobalt.rmnet.it
PL/pgSQL triggers ON INSERT OR UPDATE
First, I may be wrong but I do think they would prefer if you did not cross-post (especially to hackers).

Second I think it probably make more sense to make two different triggers here.

If you really wanted to do it that way you might want to try executing that part.

Regards,

Aasmund.

On Mon, 22 Oct 2001 23:25:44 +0200, san@cobalt.rmnet.it wrote:
> Hello, I'm trying to set up a trigger on insert or update
> but when using the predefined variable ``OLD'' I get a
> NOTICE from the trigger function about OLD not being defined yet.
> 
> Of course OLD is not defined when the function is triggered on INSERT
> event, and I did not mention it if not inside a conditional block
> checking for the TG_OP variable being 'UPDATE'.
> 
> For better understanding here is some code:
> 
> BEGIN
> 	IF TG_OP = 'UPDATE' THEN
> 		IF OLD.id <> NEW.id THEN
> 			-- do the work
> 		END IF
> 	END IF;
> END;
> 
> Even when TG_OP != 'UPDATE' (INSERT event) I still get an error
> message from the pl/pgsql compiler (the first time the trigger is fired).
> 
> What should I do then ? Is it still possible to use the same function
> for UPDATE OR INSERT events ?
> 
> TIA
> 
> --san;
> 
> ---------------------------(end of broadcast)---------------------------
> TIP 4: Don't 'kill -9' the postmaster

Aasmund Midttun Godal

aasmund@godal.com - http://www.godal.com/
+47 40 45 20 46

Tue, 23 Oct 2001 16:31:12 GMT
"Aasmund Midttun Godal" <postgresql@envisity.com>
Re: PL/pgSQL triggers ON INSERT OR UPDATE