-1

こんにちは、私は現在、通常のメンバー テーブルと 2 つのテーブルを持っています。

メンバー表

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

私は2番目のテーブルを持っています

プランナー

day as varchar
time as varchar
activity varchar
member bigint

null や一意ではなく、member_id を主キーとして定義しました

member が member_id の外部キーであることも設定しました

これにより、メンバーのID番号のみがプランナーに入力されるようになるはずですよね?

現在、 member_id が 1 - 4 の 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 に答える