Potresti provare quanto segue. Devi creare un vincolo UNIQUE ridondante su (id, aId)
in Parent (SQL è piuttosto stupido, vero?!).
CREATE TABLE Child
(parentId INTEGER NOT NULL,
aId INTEGER NOT NULL UNIQUE,
FOREIGN KEY (parentId,aId) REFERENCES Parent (id,aId),
createdOn TIMESTAMP NOT NULL);
Forse una soluzione molto migliore sarebbe quella di eliminare del tutto parentId dalla tabella Child, aggiungere bId
invece e fai semplicemente riferimento alla tabella padre in base a (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'è qualche motivo per cui non puoi farlo?