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