How to create a trigger
Hello,
I know nothing about triggers so I need a little hand-holding here. I'm
taking an Oracle script and converting it to pgsql. One of the things
that the Oracle database supports is a trigger on dates. So there are two
fields in the table, CREATION_DATE and UPDATE_DATE.
In the CREAT TABLE statement, I can set both dates using DEFAULT (once I
figure out how to get today's date in). But hoiw would I write a trigger
that changes the update_date to use the current time? Basically, I guess
it would be
create trigger date_update before update on mytable
for each statement execut procedure [procedure that inserts a date
for me in the update_date column]
So what would I be doing for the portion in brackets?
Thanks,
L
--
Laurent Duperval <mailto:lduperval@microcelli5.com>
Les plus vigoureux coups de main au destin n'aboutissent pas toujours dans la
vie, aux d�marrages qu'on attendait.
-Alambic Talon
create trigger date_update before update on mytable
for each statement execut procedure [procedure that inserts a date
for me in the update_date column]So what would I be doing for the portion in brackets?
at that point you need a function.
check out the CREATE FUNCTION syntax in the docs
(http://www.postgresql.org/idocs/index.php?sql-createfunction.html).
for what you were talking about, it seems like something as simple as
create function trigger_before_update_mytable() returns opaque as '
begin
new.update_date = now();
return new;
end;
' as language 'plpgsql';
would work.
then your last line of the trigger statement would be:
for each statement execut procedure trigger_before_update_mytable();
good luck.
-tfo
See
http://www.brasileiro.net/postgres/cookbook/view-one-recipe.adp?recipe_id=10
"Thomas F. O'Connell" wrote:
create trigger date_update before update on mytable
for each statement execut procedure [procedure that inserts a date
for me in the update_date column]So what would I be doing for the portion in brackets?
at that point you need a function.
check out the CREATE FUNCTION syntax in the docs
(http://www.postgresql.org/idocs/index.php?sql-createfunction.html).for what you were talking about, it seems like something as simple as
create function trigger_before_update_mytable() returns opaque as '
begin
new.update_date = now();
return new;
end;
' as language 'plpgsql';would work.
then your last line of the trigger statement would be:
for each statement execut procedure trigger_before_update_mytable();
good luck.
-tfo
---------------------------(end of broadcast)---------------------------
TIP 4: Don't 'kill -9' the postmaster
--
Joseph Shraibman
jks@selectacast.net
Increase signal to noise ratio. http://www.targabot.com