で外部キー:私は、次の3つのテーブル持っている複合主キー
TBLAを
ID - PK
name
TBLB
ID - PK
tblAID - FK references tblA.ID
pkID2
tblC
ID - PK
tblAID *
fkID2 *
...
私は私がこれを行う場合は、このタプル(tblB.tblAID, tblB.pkID2)
のFKを作りたい:
が全く主または候補キーではありません:私は、エラーメッセージが表示されます
alter table tblC with check add constraint FK_tblC_tblB foreign key (tblAID, fkID2) references tblB (tblAID, pkID2)
を外部キーの参照列リストと一致する参照テーブル 'tblB' 'FK_tblC_tblB'
私は:に挿入されたタプルペアがtblB
に存在することを確認します。しかし、pkID2
は鍵ではないので、私はそれをすることはできません。本当にtblB
は複合プライマリキーとしてtblAID, pkID2
を持つことができます。しかし、tblAID
は、まだtblA.ID
のFKでなければなりません。
これは半修辞的ですが、なぜtblCに入れている列をtblBに入れることはできませんか? – Dave
私はあなたが予約しようとしていることについてはっきりしていません。 tblBに同様のtblAIDとpkID2値が含まれていない限り、この制約の目的はtblCに行を追加しないようにすることで、tblCにtblAIDやpkID2の値が含まれている場合、 –