From: | "Jackson, DeJuan" <djackson(at)cpsgroup(dot)com> |
---|---|
To: | Herouth Maoz <herouth(at)oumail(dot)openu(dot)ac(dot)il>, pere(at)td(dot)org(dot)uit(dot)no, pgsql-sql(at)postgreSQL(dot)org |
Subject: | RE: [SQL] Problems with default date 'now' |
Date: | 1998-06-10 15:14:44 |
Message-ID: | F10BB1FAF801D111829B0060971D839F2CDDC3@cpsmail |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
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
From | Date | Subject | |
---|---|---|---|
Next Message | Herouth Maoz | 1998-06-10 16:22:54 | RE: [SQL] Problems with default date 'now' |
Previous Message | Jose' Soares Da Silva | 1998-06-10 12:50:18 | Re: [SQL] Problems with default date 'now' |