Ben Clewett wrote:
> Is this possible?? Should I cut-and-run here and do the coding in
> application space?
How 'bout:
CREATE TABLE bar (
id int4 NOT NULL,
live bool
);
insert into bar values(1,'t');
insert into bar values(2,'f');
CREATE OR REPLACE FUNCTION check_bar(int4) RETURNS bool AS'
SELECT live FROM bar WHERE id = $1
' language 'sql' STABLE STRICT;
CREATE TABLE foo (
id int4 NOT NULL CHECK (check_bar(id))
);
regression=# insert into foo values(1);
INSERT 1336840 1
regression=# insert into foo values(2);
ERROR: ExecInsert: rejected due to CHECK constraint "foo_id" on "foo"
HTH,
Joe