是否可以将PostgreSQL检查约束应用于外来列? 没有像这样的外来检查约束,可以获得相同的效果:
create table a (
id serial primary key,
flag boolean,
unique(id, flag)
);
create table b (
id serial primary key,
a_id integer,
yup_true boolean not null default true,
foreign key (a_id, yup_true) references a(id, flag)
);
但这有点尴尬。有没有办法直接将该检查应用于外国专栏?
编辑:
在这种情况下,希望仅允许b
使用检查约束来引用a
列为flag
的{{1}}中的行。该示例显示了使用外键约束可以完成的方法,但问题是具体是否/如何使用检查约束来完成。
可能的样子(完全错误,需要工作)的例子如下:
true
EDIT2:
表中数据的示例以及哪些行有效且无效
create table a (
id serial primary key,
flag boolean
);
create table b (
id serial primary key,
a_id integer references a(id),
check(a(flag))
);