-1

嗨,我目前有两个表和通常的成员表。

成员表

member_id SERIAL, 
first_name varchar(20)
last_name varchar(20).

我有第二张桌子

规划师

day as varchar
time as varchar
activity varchar
member bigint

我将 member_id 定义为主键,不为空且唯一

我还设置了 member 是 member_id 的外键

所以这应该允许它,以便只有成员中的 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".

所以我目前很难过,任何帮助都会非常有帮助,谢谢大家。

4

1 回答 1

1

它不起作用,因为继承不适用于外键。使用当前版本的 PostgreSQL

我必须为它创建一个规则才能工作

create rule fake_ref
as on insert to planner
where new.member not in (select member_id from members)
do instead nothing;
于 2012-04-22T12:20:18.640 回答