On Tue, Aug 23, 2011 at 1:27 AM, Herouth Maoz <hero...@unicell.co.il> wrote:
> My thanks to everyone who replied. > > I have decided not to implement that constraint at this time. Using a > compound type will make the system more complicated and less readable, plus > requires installing the package which is beyond vanilla PostgreSQL. > > Now I have another exclusion constraint I'm thinking about in another and I > want to verify that this will do what I mean it to do: > > CREATE TABLE invoice_definitions > ( > id SERIAL PRIMARY KEY NOT NULL, > customer_id INTEGER NOT NULL REFERENCES customers(id), > is_default BOOLEAN NOT NULL DEFAULT FALSE, > bill_description VARCHAR(100) NOT NULL, > itemized_description VARCHAR(100) NOT NULL, > EXCLUDE USING GIST ( customer_id WITH =, is_default WITH AND ) > ) > ; > > Basically, each customer can have several rows in this table, but only one > per customer is allowed to have is_default = true. Is this exclude > constraint correct? > You can validate this yourself with 3 insert statements into the table declared in your email.