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. ---------------------------(end of broadcast)--------------------------- TIP 1: subscribe and unsubscribe commands go to [EMAIL PROTECTED]