DEFAULT confusion - Mailing list pgsql-sql

From Hroi Sigurdsson
Subject DEFAULT confusion
Date
Msg-id 37D59F84.115F1790@get2net.dk
Whole thread Raw
List pgsql-sql
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);

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


pgsql-sql by date:

Previous
From: wieck@debis.com (Jan Wieck)
Date:
Subject: Re: [SQL] BUG with decimal type
Next
From: Hroi Sigurdsson
Date:
Subject: DEFAULT confusion