Vous pouvez essayer ce qui suit. Vous devez créer une contrainte UNIQUE redondante sur (id, aId)
dans Parent (SQL est plutôt stupide, n'est-ce pas ? !).
CREATE TABLE Child
(parentId INTEGER NOT NULL,
aId INTEGER NOT NULL UNIQUE,
FOREIGN KEY (parentId,aId) REFERENCES Parent (id,aId),
createdOn TIMESTAMP NOT NULL);
Une bien meilleure solution serait peut-être de supprimer complètement parentId de la table Child, ajouter bId
à la place et faites simplement référence à la table Parent basée sur (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);
Y a-t-il une raison pour laquelle vous ne pouvez pas faire cela ?