One way around this bug is to create a SQL function
which returns now() and use it as the default value:
1. create function mynow() returns datetime as 'SELECT now()::datetime' LANGUAGE 'SQL';
2. create table test (a datetime default mynow(), b
int4);
Now things should work:
insert into test (b) values (1);
insert into test (b) values (2);
select * from test;
a |b
----------------------------+-
Tue Sep 21 01:05:02 1999 EDT|1
Tue Sep 21 01:05:08 1999 EDT|2
(2 rows)
Hope this helps,
Mike Mascari
(mascarim@yahoo.com)
--- Oleg Bartunov <oleg@sai.msu.su> wrote:
> Hi,
>
> how I could create table with datetime field default
> to 'now'::text in
> a way Jan did in his shoes rule example ?
>
> If I do:
> test=> create table test ( a datetime default 'now',
> b int4);
> CREATE
> test=> insert into test (b) values (1);
> INSERT 1677899 1
> test=> insert into test (b) values (2);
> INSERT 1677900 1
> test=> select * from test;
> a |b
> ----------------------------+-
> Tue 21 Sep 01:48:27 1999 MSD|1
> Tue 21 Sep 01:48:27 1999 MSD|2
> (2 rows)
>
> I always get datetime of the moment I created the
> table, but I'd like
> to have datetime of moment I insert.
>
> Regards,
>
> Oleg
>
__________________________________________________
Do You Yahoo!?
Bid and sell for free at http://auctions.yahoo.com