Bạn có thể thử những cách sau. Bạn phải tạo ràng buộc DUY NHẤT dư thừa trên (id, aId)
trong Parent (SQL khá ngớ ngẩn phải không ?!).
CREATE TABLE Child
(parentId INTEGER NOT NULL,
aId INTEGER NOT NULL UNIQUE,
FOREIGN KEY (parentId,aId) REFERENCES Parent (id,aId),
createdOn TIMESTAMP NOT NULL);
Có thể một giải pháp tốt hơn nhiều là loại bỏ hoàn toàn parentId khỏi bảng Con, thêm bId
thay vào đó và chỉ tham chiếu bảng Gốc dựa trên (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);
Có lý do gì khiến bạn không thể làm điều đó?