"Tom Lane" <tgl@sss.pgh.pa.us> writes:
> Simon Riggs <simon@2ndquadrant.com> writes:
>
>> Sure is, and I've done it just a few days ago.
>
>> This SQL does it using standard syntax:
>
>> create table foo (handle integer primary key check (handle = 1));
>
> That does not constrain the table to have only one row. It constrains
> it to have only one value of the handle field (thereby making the field
> useless).
And that field is the primary key so...
I think the point is that both of these solutions are reasonable solutions to
the stated problem. If we can there's no reason to make only one of them
legal.
Actually there is one reason to prefer Simon's solution (which was the only
approach I've seen before) -- it's standard SQL and should work on any
database with check constraints and unique constraints.
--
Gregory Stark
EnterpriseDB http://www.enterprisedb.com
Ask me about EnterpriseDB's On-Demand Production Tuning