Re: Sub Select inside Check ?
От | Stephan Szabo |
---|---|
Тема | Re: Sub Select inside Check ? |
Дата | |
Msg-id | 20030225074841.X57635-100000@megazone23.bigpanda.com обсуждение исходный текст |
Ответ на | Sub Select inside Check ? (Rudi Starcevic <rudi@oasis.net.au>) |
Список | pgsql-sql |
On Tue, 25 Feb 2003, Rudi Starcevic wrote: > I'm trying to create this table with a Check that fails. > > I'm using 'Check' instead of 'References' due to poor db schema ( before > me .. ) > > Here is my error message: > ERROR: cannot use subselect in CHECK constraint expression > > CREATE TABLE cp_retailers > ( > ret_id serial PRIMARY KEY, > ret_name varchar(120) NOT NULL, > ret_address1 varchar(120), > ret_address2 varchar(120), > sub_id integer NOT NULL CHECK > ( EXISTS > ( SELECT sub_id FROM suburbs ) > ) > ); > > I guess that say's it all - no sub select's in Check or am I on the > wrong track ? Unfortunately, that's not supported (it's non-trivial). If you're looking only for an insert/update on cp_retailers check (ie, suburbs is unlikely to be updated/deleted from), you can do this by hiding the subselect in a function and using that in the check. If you need both direction checks it gets rather complicated to do well, but you can come fairly close using after triggers.
В списке pgsql-sql по дате отправления: