Możesz spróbować następujących. Musisz utworzyć nadmiarowe ograniczenie UNIQUE na (id, aId)
w Parent (SQL jest dość głupi, prawda?!).
CREATE TABLE Child
(parentId INTEGER NOT NULL,
aId INTEGER NOT NULL UNIQUE,
FOREIGN KEY (parentId,aId) REFERENCES Parent (id,aId),
createdOn TIMESTAMP NOT NULL);
Prawdopodobnie znacznie lepszym rozwiązaniem byłoby całkowite usunięcie parentId z tabeli Child, dodanie bId
zamiast tego i po prostu odwołaj się do tabeli nadrzędnej na podstawie (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);
Czy jest jakiś powód, dla którego nie możesz tego zrobić?