Re: help writing a constraint
От | Alvaro Herrera |
---|---|
Тема | Re: help writing a constraint |
Дата | |
Msg-id | Pine.LNX.4.44.0208111604280.13909-100000@cm-lcon1-46-187.cm.vtr.net обсуждение исходный текст |
Ответ на | help writing a constraint (Gregory Seidman <gss+pg@cs.brown.edu>) |
Список | pgsql-general |
Gregory Seidman dijo: > > I need to constrain this so that for any given row, it either hasBar or > hasBaz, or neither, but not both. I'm not entirely clear on how to write > constraints, though. Is the following correct (within the CREATE)? > > CHECK (hasBar IS NULL OR hasBaz IS NULL) CREATE TABLE Foo ( id SERIAL not null, hasBar integer default null REFERENCES Bar, hasBaz integer default null REFERENCES Baz, primary key (id), CHECK (hasBar IS NULL OR hasBaz IS NULL) ); Why don't you try it out before asking? You were perfectly right. You can also give a name to constraints to get more meaningful messages (useful if you have lots of constraints): CREATE TABLE Foo ( id SERIAL not null, hasBar integer default null REFERENCES Bar, hasBaz integer default null REFERENCES Baz, primary key (id), constraint onlyOne CHECK (hasBar IS NULL OR hasBaz IS NULL) ); -- Alvaro Herrera (<alvherre[a]atentus.com>) "Siempre hay que alimentar a los dioses, aunque la tierra este seca" (Orual)
В списке pgsql-general по дате отправления: