Thread: RE: [SQL] DEFAULT confusion

RE: [SQL] DEFAULT confusion

From
"Jackson, DeJuan"
Date:

> -----Original Message-----
> From:    Hroi Sigurdsson [SMTP:hroi@ninja.dk]
> Sent:    Tuesday, September 07, 1999 9:40 PM
> To:    pgsql-sql@postgreSQL.org
> Subject:    [SQL] DEFAULT confusion
> 
> Hello postgresql'ers (how do you pronounce that?).
> 
> Suppose i have the following sequence, table and index:
> 
> CREATE SEQUENCE stuff_seq; 
> CREATE TABLE stuff (
>         id      INTEGER DEFAULT NEXTVAL('stuff_seq') NOT NULL,
>         name    TEXT,
>         number  INTEGER
> );
> CREATE UNIQUE INDEX stuff_id ON tabel(id); 
> 
> Then to properly insert rows i have to
> 
> INSERT INTO tabel VALUES (NEXTVAL('tabel_seq'), "sometext", 123);Change the above line to:INSERT INTO stuff(name,
number)VALUES ('sometext', 123);
 
Hope this helps,    DEJ

> I can't just
> INSERT INTO tabel VALUES (NULL, "something", 123);
> 
> Then what is the point of the DEFAULT clause? In other words: How do I
> get away with not specifying anything for id? And how (if
> possible/recommendable) do I force the id value to be nothing but
> NEXTVAL('stuff_seq'), ie. not just an arbitrary number?
> 
> In short I want to emulate MySQL's way of doing
> CREATE TABLE(
>         id      INT NOT NULL AUTO_INCREMENT,
>         name    TEXT,
>         int     INT,
>         UNIQUE(id)
> );
> 
> I hope I made myself sufficiently clear.
> 
> Thank you for your time.
> 
> 
> PS.
> Where can I get more information about the REFERENCES keyword and when
> will it be fully working in Postgres?
> PPS.
> Are there any books out there that cover Postgresql?
> -- 
> Hroi Sigurdsson
> hroi@ninja.dk
> 
> ************