次のことを試すことができます。 (id, aId)
に冗長なUNIQUE制約を作成する必要があります 親で(SQLはかなり馬鹿げていますね!)
CREATE TABLE Child
(parentId INTEGER NOT NULL,
aId INTEGER NOT NULL UNIQUE,
FOREIGN KEY (parentId,aId) REFERENCES Parent (id,aId),
createdOn TIMESTAMP NOT NULL);
おそらく、はるかに優れた解決策は、子テーブルからparentIdを完全に削除し、bId
を追加することです。 代わりに、(aId, bId)
に基づいて親テーブルを参照するだけです。 :
CREATE TABLE Child
(aId INTEGER NOT NULL UNIQUE,
bId INTEGER NOT NULL,
FOREIGN KEY (aId,bId) REFERENCES Parent (aId,bId),
createdOn TIMESTAMP NOT NULL);
それができない理由はありますか?