Le 27/12/2010 18:57, Michael Satterwhite a écrit : > 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) > > I'm obviously missing something ... and probably something obvious. Why is > date2 still null? > I'm not sure it'll help you. I copy/pasted your SQL script in my 9.0.2 release. Worked great. What does \d says about your table? your trigger could be disabled. -- Guillaume http://www.postgresql.fr http://dalibo.com -- Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general