嗨,我目前有两张表与平时一样的成员表。
会员表
member_id SERIAL,
first_name varchar(20)
last_name varchar(20).
我有第二张表
计划者
day as varchar
time as varchar
activity varchar
member bigint
我将member_id定义为主键,而不是null和唯一
我还设置了该成员是member_id
的foregin键所以这应该允许它只允许成员中的id号并输入计划器,是吗?
目前我有四名成员,member_id是1-4。 好吧,当我在下面尝试这个时,它仍然不允许我在计划表中插入数据。
INSERT INTO planner VALUES ('monday','09:00','Rowing',2);
对我来说应该有用,但我收到了这个错误:
DETAIL Key (member)=(2) is not present in the table "members".
所以我现在很难过,感谢大家,任何帮助都会非常有用。
答案 0 :(得分:1)
它没有用,因为继承对外键不能很好地工作。使用当前版本的PostgreSQL
我必须创建一个规则让它工作
create rule fake_ref
as on insert to planner
where new.member not in (select member_id from members)
do instead nothing;