From: | Joseph Shraibman <jks(at)selectacast(dot)net> |
---|---|
To: | Joe Conway <jconway2(at)home(dot)com> |
Cc: | pgsql-sql(at)postgresql(dot)org |
Subject: | Re: 'record old is unassigned yet' when using trigger in 7.1.1 |
Date: | 2001-05-09 23:39:46 |
Message-ID: | 3AF9D542.88C9FACD@selectacast.net |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-sql |
OK I tried:
create function utbl_set_statchangedate() returns opaque as '
begin
IF TG_OP = \'INSERT\' OR OLD.status <> NEW.status
THEN
NEW.statchangedate = CURRENT_DATE;
END IF;
return NEW;
end;
' language 'plpgsql';
... but that had the same problem. So then I tried:
create function utbl_set_statchangedate() returns opaque as
'begin
IF TG_OP = \'UPDATE\'
THEN
NEW.statchangedate := CURRENT_DATE;
ELSE IF OLD.status <> NEW.status
THEN
NEW.statchangedate := CURRENT_DATE;
END IF;
return NEW;
end;
' language 'plpgsql';
but now I'm getting:
NOTICE: plpgsql: ERROR during compile of utbl_set_statchangedate near
line 10
ERROR: parse error at or near ";"
Joe Conway wrote:
>
> > begin
> > IF OLD.status <> NEW.status
> > THEN
> > NEW.statchangedate = CURRENT_DATE;
> > END IF;
> > return NEW;
> > end;
> >
> > The problem is when a new row is inserted I get this error message:
> > ERROR: record old is unassigned yet
> > ... and the insert fails.
> >
> > It doesn't matter if the trigger is before or after.
>
> OLD doesn't exist on inserts, only on update and delete. If you want to use
> the same function for both insert and update use the TG_OP variable and an
> if statement. See
> http://www.postgresql.org/idocs/index.php?plpgsql-trigger.html
>
> Hope this helps,
>
> Joe
--
Joseph Shraibman
jks(at)selectacast(dot)net
Increase signal to noise ratio. http://www.targabot.com
From | Date | Subject | |
---|---|---|---|
Next Message | Joseph Shraibman | 2001-05-09 23:44:03 | Re: 'record old is unassigned yet' when using trigger in 7.1.1 |
Previous Message | Roberto Mello | 2001-05-09 22:37:44 | Re: Information passing, Perl, Unix and Postgresql Database |