Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.misc -> Re: Table Trigger to set last_update_date field.

Re: Table Trigger to set last_update_date field.

From: Michel Cadot <micadot_at_netcourrier.com>
Date: Mon, 13 Mar 2000 08:34:42 +0100
Message-ID: <8ai5mq$3nb$1@news2.isdnet.net>


You're right, you cannot change new values in an after trigger.

I made a cut&paste too fast.
Thanks for the correction.

--
Regards
Michel

Kurt Krieger <kkrieger_at_erols.com> a écrit dans le message : 38C86035.365B3F6D_at_erols.com...
> You're assigning a value, so you have to use ':='...
> :new.last_update_date := sysdate;
>
> Also, shouldn't it be 'before insert or update'? Does setting :new.% do
anything
> after the physical record has been written? If the field last_update_date is
not
> null, and the record you are inserting/updating does not have a value in the
> field, then I believe you'll raise an error if you wait until 'after' to set
the
> value. I'd write it this way...
>
> create or replace trigger trg_storm_personnel_biur
> before insert or update on storm_personnel
> for each row
> begin
> :new.last_update_date := sysdate;
> end;
> /
> show error
>
> Kurt
>
> Michel Cadot wrote:
>
> > This will not work and you'll have a "mutating table" error ;
> > you have to use :new.last_update_date:
> >
> > create trigger set_update_date
> > AFTER INSERT or UPDATE on STORM_PERSONNEL for each row
> > begin
> > :new.last_update_date = sysdate;
> > end;
> > /
> >
> > --
> > Have a nice day
> > Michel
> >
> > Richard Billingsley <rbillingsley_at_deadend.com> a écrit dans le message :
> > ruPx4.9317$yV1.2222176_at_tw11.nn.bcandid.com...
> > > I have been asked to create a table trigger that will update the
> > > last_update_date field for each record that is inserted or updated.
> > >
> > > Not being a trigger expert I have created the following code:
> > >
> > > create trigger set_update_date
> > > AFTER INSERT or UPDATE on STORM_PERSONNEL for each row
> > > begin
> > >
> > > update storm_personnel
> > > set last_update_date = sysdate
> > > where storm_pers_id = :new.storm_pers_id;
> > >
> > > end;
> > > /
> > >
> > > Personally, I'm not sure the :new.storm_pers_id would work on an UPDATE,
> > > since it may not be part of the update statement. And perhaps there's
even
> > > an easier way of doing this that I'm not aware of.
> > >
> > > I don't know if this will work or not. Could some one experienced help me
> > > out with what's right or wrong with this.
> > >
> > > I really appreciate it.
> > >
> > > Thanks,
> > >
> > > Richard..
> > >
> > >
> > > --
> > > Richard Billingsley
> > >
> > > Note: To reply via email replace "deadend.com" with "vbig.com" before
> > > sending.
> > >
> > >
>
Received on Mon Mar 13 2000 - 01:34:42 CST

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US