Re: Create a function that updates the record with and timestamps

From: "A(dot) Kretschmer" <andreas(dot)kretschmer(at)schollglas(dot)com>
To: pgsql-general(at)postgresql(dot)org
Subject: Re: Create a function that updates the record with and timestamps
Date: 2010-03-23 05:56:35
Message-ID: 20100323055635.GA23688@a-kretschmer.de
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

In response to Richard Sickler :
> > I am not sure if there is a very simple way of doing this?
> >
> > Or, do I need to create a function and a trigger to call the row and
> update
> > with new data and set the last_modified to current_date?
>
> Yes, that's the way, a TRIGGER on UPDATE for each row. I think, the doc
> contains an example.
>
>
> Andreas
>
>
> From a novice: I use    last_updated_at timestamp without time zone NOT NULL
> DEFAULT now()

This works only for INSERT, but not for UPDATE.

test=# create table richard (id int, last_updated_at timestamp without time zone NOT NULL DEFAULT NOW());
CREATE TABLE
test=# insert into richard (id) values (1);
INSERT 0 1
test=# select * from richard ;
id | last_updated_at
----+----------------------------
1 | 2010-03-23 06:54:28.656668
(1 row)

test=# select now();
now
-------------------------------
2010-03-23 06:54:42.443224+01
(1 row)

test=# UPDATE richard set id=2 where id=1;
UPDATE 1
test=# select * from richard ;
id | last_updated_at
----+----------------------------
2 | 2010-03-23 06:54:28.656668
(1 row)

As you can see, the last_updated_at isn't up-to-date ;-)

Regards, Andreas
--
Andreas Kretschmer
Kontakt: Heynitz: 035242/47150, D1: 0160/7141639 (mehr: -> Header)
GnuPG: 0x31720C99, 1006 CCB4 A326 1D42 6431 2EB0 389D 1DC2 3172 0C99

In response to

Browse pgsql-general by date

  From Date Subject
Next Message John R Pierce 2010-03-23 06:17:15 Re: Replace null values
Previous Message Nilesh Govindarajan 2010-03-23 04:45:07 Re: Replace null values