Jim C. Nasby wrote:
Is there some reason why the SERIAL data type doesn't automatically have
a UNIQUE CONSTRAINT.
It used to, and then we decoupled it.
[snip]
Arguably it would have been better to make the default case add either
UNIQUE or PRIMARY KEY with a way to over-ride.
Arguably SERIAL shouldn't be a type at all since it's nothing to do with
defining a set of values. If you were being clean about it you'd have to
have something like "mycol INTEGER SERIAL UNIQUE", then wire SERIAL to a
generator function for the type in question.
If newbies are getting burned maybe it would be useful to toss a NOTICE
or maybe even WARNING when a serial is created without a unique
constraint of some kind?
Don't forget the NOT NULL too. Perhaps simpler to have a PGIDENT
pseudo-type that implies "UNIQUE NOT NULL" and then explain the
difference in the docs.
--
Richard Huxton
Archonet Ltd
---------------------------(end of broadcast)---------------------------
TIP 3: Have you checked our extensive FAQ?
http://www.postgresql.org/docs/faq