RE: [SQL] Problems with default date 'now'

Jackson, DeJuan <djackson@cpsgroup.com>

From: "Jackson, DeJuan" <djackson@cpsgroup.com>
To: Herouth Maoz <herouth@oumail.openu.ac.il>, pere@td.org.uit.no, pgsql-sql@postgreSQL.org
Date: 1998-06-10T15:14:44Z
Lists: pgsql-sql
> > Nope, that did not work.
> >
> > I get this reply from psql:
> >
> >   WARN:parser: parse error at or near "current_date"
> >
> > What is wrong.  Is this something new in PostgreSQL after v6.2.1?
> 
> Yes, it's something new. I still work with 6.2.1, so here's the deal:
> 
> Using a constant default value for a column causes the constant to be
> evaluated once, at the creation of the table. That value is then kept
> with
> the table schema, which means each row will be stamped with the same
> date.
> 
> In order to avoid that, you have to use a function as a default value.
> Functions are evaluated each time a column is created. For this
> purpose, I
> created an SQL function like this:
> 
> CREATE FUNCTION current_datetime() RETURNS datetime
> AS 'SELECT ''now''::datetime'
> LANGUAGE 'sql';
> 
> And I define the table as (in my case):
> 
> CREATE TABLE session
> (
>         session         int4
>                         DEFAULT nextval( 'sess_no' )
>                         NOT NULL,
>         created         datetime
>                         DEFAULT current_datetime() -- See here
>                         NOT NULL,
>         webuser         char(30)
> );
> 
> You can define the function once, and use it for all the applications
> using
> the same database.
> 
> Herouth
> 
Why don't you just use the function version of now (I'm not familiar
with 6.2.1 so it could be that it doesn't exist).

received_date DATE DEFAULT NOW()

just a thought,
	-DEJ