Re: [SQL] INSERT w/o variable names for a SERIAL type?

From: Alessio Bragadini <alessio(at)albourne(dot)com>
To: Emils Klotins <emils(at)mail(dot)usis(dot)bkc(dot)lv>
Cc: pgsql-sql(at)postgreSQL(dot)org
Subject: Re: [SQL] INSERT w/o variable names for a SERIAL type?
Date: 2000-02-25 15:14:26
Message-ID: 38B69C52.11EEF672@albourne.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

Emils Klotins wrote:

> I am using, which is written for connecting to another server
> and uses the AUTO_INCREMENT and BLOB fields (for storing
> text). Apparently it was written for mysql(?).

Most probably.

> I wanted to write a #define or two to change the relevant
> places, such as
>
> #define IDKEY "INTEGER AUTO_INCREMENT PRIMARY
> KEY" // mysql version
> #define IDKEY "SERIAL PRIMARY KEY" // postgres

Note that SERIAL is syntactic sugar for
INT4 NOT NULL DEFAULT NEXTVAL('<table>_<field>_SEQ')

> INSERT INTO mytable VALUES (NULL, 'textvalue');
> and NULL would get translated into the real value.

Please allow me not to comment on mysql behaviour...

> Now, if I want to write a general #define, I'd need to have a way
> to specify 'default' for SERIAL field, for, if I omit the id field in
> VALUES, I need to specify all the rest of the fields explicitly.
>
> Is there any value I could put in place of id in VALUES part, to
> make it replaced with the next value in sequence?

NEXTVAL('<table>_<field>_seq') should work.

--
Alessio F. Bragadini alessio(at)albourne(dot)com
APL Financial Services http://www.sevenseas.org/~alessio
Nicosia, Cyprus phone: +357-2-750652

"It is more complicated than you think"
-- The Eighth Networking Truth from RFC 1925

In response to

Browse pgsql-sql by date

  From Date Subject
Next Message Matthew Hagerty 2000-02-25 15:56:18 Finding missing records...
Previous Message Emils Klotins 2000-02-25 13:59:40 INSERT w/o variable names for a SERIAL type?