こんにちは私は現在2つのテーブルを持っている通常のメンバーテーブル。postgreSQLプライマリ/外部キーに準拠していません
メンバー表
member_id SERIAL,
first_name varchar(20)
last_name varchar(20).
私は2番目のテーブルに
プランナー
day as varchar
time as varchar
activity varchar
member bigint
を持っている私は、私はそれを持って、主キー、NOT NULLとユニークな
としてMEMBER_IDを定義しそのメンバーがmember_idのforeginキーであることも設定してください
これでメンバーのID番号だけをプランナに入力できるようにする必要がありますか?
私は現在、member_idが1から4までの4人のメンバーを持っています。 これを試しても、plannerテーブルのデータを挿入することはできません。動作するはずです私に
INSERT INTO planner VALUES ('monday','09:00','Rowing',2);
が、私は、このエラーが発生します:
DETAIL Key (member)=(2) is not present in the table "members".
ので、私は任意のヘルプは非常に参考に感謝あなたのすべてになり、現在は困惑しています。
を動作させるためのルールを作成する必要がありましたPostgreSQLの
のこの現在のバージョンでは、私たちの完全な 'CREATE TABLE'文を表示して下さい外部キーの定義が含まれています。 –
'member_id SERIAL'は、あなたのFKが' member bigint'の間に 'integer'型です。これは、Pgがbigintを整数にキャストする方法を知っているので、FK制約の操作に害を与えるべきではありませんが、実際には、同じ基本型、メンバ整数またはmember_idの 'bigserial'を定義する必要があります。 – dbenhur
少なくともあなたが提供した情報に基づいて動作するので、あなたにはわからないことがあります。以下を参照してください:http://pastebin.com/YrdLLG1Q –