Thread: DEFAULT TEXT 'now'

DEFAULT TEXT 'now'

From
Roberto Joao Lopes Garcia
Date:
Hi

I´m have a table like bellow:

CREATE TABLE conex (
    id int4 PRIMARY KEY DEFAULT NEXTVAL('seq_conex'),

    inicio datetime DEFAULT TEXT 'now',
    ultimo datetime DEFAULT TEXT
'now',
                 .
                 .
                 .
)

insert into conex (ip) values(´200.200.200.200´)

Will result every time the same data and time for ´inicio´ and ´ultimo´!

I want to insert the current date and time. Is that code correct and the
result a bug???
Is there an way to make the DEFAULT work???

I know I can insert like:

insert into conex (ip, inicio, ultimo) values(´200.200.200.200´, ´now´, ´now´)

but I would like to use DEFAULT.

PostgreSQL 6.4 - Solaris 2.5 sparc

Thank you

Roberto



Re: [SQL] DEFAULT TEXT 'now'

From
Howie
Date:
On Tue, 23 Mar 1999, Roberto Joao Lopes Garcia wrote:

> Hi
>
> I�m have a table like bellow:
>
> CREATE TABLE conex (
>     id int4 PRIMARY KEY DEFAULT NEXTVAL('seq_conex'),
>
>     inicio datetime DEFAULT TEXT 'now',
>     ultimo datetime DEFAULT TEXT
> 'now',
>                  .
>                  .
>                  .
> )
>
> insert into conex (ip) values(�200.200.200.200�)
>
> Will result every time the same data and time for �inicio� and �ultimo�!
>
> I want to insert the current date and time. Is that code correct and the
> result a bug???
> Is there an way to make the DEFAULT work???

try:

...
inicido DATETIME DEFAULT NOW(),
ultimo  DATETIME DEFAULT NOW(),
...

---
Howie <caffeine@toodarkpark.org>   URL: http://www.toodarkpark.org
  "You can change the world with a bullet in the right place"


Re: [SQL] DEFAULT TEXT 'now'

From
tolik@icomm.ru (Anatoly K. Lasareff)
Date:
>>>>> "RJLG" == Roberto Joao Lopes Garcia <roberto@mha.com.br> writes:

 RJLG> Hi
 RJLG> I╢m have a table like bellow:

 RJLG> CREATE TABLE conex (
 RJLG> id int4 PRIMARY KEY DEFAULT NEXTVAL('seq_conex'),

 RJLG> inicio datetime DEFAULT TEXT 'now',
 RJLG> ultimo datetime DEFAULT TEXT
 RJLG> 'now',
 RJLG> .
 RJLG> .
 RJLG> .
 RJLG> )

 RJLG> insert into conex (ip) values(╢200.200.200.200╢)

 RJLG> Will result every time the same data and time for ╢inicio╢ and ╢ultimo╢!

You must type


inicio datetime DEFAULT TEXT now(),
                             ^^^^^

This is the function which calls every time you insert new record. In
your case 'now' is the constant, which calculates once, when you
create the table.

--
Anatoly K. Lasareff              Email:       tolik@icomm.ru
Senior programmer

Re: [SQL] DEFAULT TEXT 'now'

From
"Ross J. Reedstrom"
Date:
Anatoly K. Lasareff wrote:
>
> >>>>> "RJLG" == Roberto Joao Lopes Garcia <roberto@mha.com.br> writes:
>
>> <snipped problem with using default 'now'>

> <snipped description of using now() instead>

What version of postgresql are you all using? I tried RJLG's example
code with 6.4.2, and it worked - I got different times at each insert,
so the default 'now' was being calculated at insertion time, not table
creation time. Here's what it looks like:

test2=> \d conex

Table    = conex
+----------------------------------+----------------------------------+-------+
|              Field               |              Type                |
Length|
+----------------------------------+----------------------------------+-------+
| id                               | int4 not null default nextval (
|     4 |
| inicio                           | datetime default text 'now'
|     8 |
| ultimo                           | datetime default text 'now'
|     8 |
| ip                               | inet
|   var |
+----------------------------------+----------------------------------+-------+
Index:    conex_pkey
test2=> select * from conex;
id|inicio                      |ultimo
|             ip
--+----------------------------+----------------------------+---------------
 1|Tue Mar 23 13:40:24 1999 CST|Tue Mar 23 13:40:24 1999
CST|200.200.200.200
 2|Tue Mar 23 13:40:28 1999 CST|Tue Mar 23 13:40:28 1999
CST|200.200.200.202
 3|Tue Mar 23 13:40:30 1999 CST|Tue Mar 23 13:40:30 1999
CST|200.200.200.203
 4|Tue Mar 23 13:41:06 1999 CST|Tue Mar 23 13:41:06 1999
CST|200.200.200.203
 5|Tue Mar 23 13:41:21 1999 CST|Tue Mar 23 13:41:21 1999
CST|200.200.200.205
(5 rows)

test2=>

???

Ross

--
Ross J. Reedstrom, Ph.D., <reedstrm@rice.edu>
NSBRI Research Scientist/Programmer
Computer and Information Technology Institute
Rice University, 6100 S. Main St.,  Houston, TX 77005