Podrías intentar lo siguiente. Tienes que crear una restricción ÚNICA redundante en (id, aId)
en Parent (SQL es bastante tonto, ¿no es así?).
CREATE TABLE Child
(parentId INTEGER NOT NULL,
aId INTEGER NOT NULL UNIQUE,
FOREIGN KEY (parentId,aId) REFERENCES Parent (id,aId),
createdOn TIMESTAMP NOT NULL);
Posiblemente, una solución mucho mejor sería eliminar parentId de la tabla Child por completo, agregar bId
en su lugar, solo haga referencia a la tabla principal basada en (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);
¿Hay alguna razón por la que no puedas hacer eso?