Re: Help with trigger

From: Gary Chambers <gwchamb(at)gwcmail(dot)com>
To: Michael Satterwhite <michael(at)weblore(dot)com>
Cc: pgsql-general(at)postgresql(dot)org
Subject: Re: Help with trigger
Date: 2010-12-27 18:56:22
Message-ID: alpine.OSX.2.01.1012271348090.303@www.clipper.local
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Michael,

> I'm new to PostgreSQL, but have worked with other databases. I'm trying to
> write a trigger to default a timestamp column to a fixed interval before
> another. The test setup is as follows:
>
> create table test
> ( date1 timestamp,
> date2 timestamp
> );
>
> create or replace function t_listing_startdate() returns trigger as
> $t_listing_startdate$
> begin
> if NEW.date2 is null then
> NEW.date2 := NEW.date1 - interval '7 day';
> end if;
> return NEW;
> end;
> $t_listing_startdate$ LANGUAGE plpgsql;
>
> CREATE TRIGGER t_listing_startdate before insert or update on test
> for each row execute procedure t_listing_startdate();
>
> Insert into test(date1) values('May 4, 2012');
> INSERT 0 1
> test=# select * from test;
> date1 | date2
> ---------------------+-------
> 2012-04-27 00:00:00 |
> (1 row)

With the exception of abbreviating the table (t) and column names (d1 and
d2), your example as submitted works for me (8.4.5, MacOSX). What version
of Pg are you using and on which platform?

-- Gary Chambers

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Guillaume Lelarge 2010-12-27 18:58:40 Re: Help with trigger
Previous Message hubert depesz lubaczewski 2010-12-27 18:24:54 Problem with restoring from backup on 9.0.2