Bonjour,
J'ai lu :Bases de données relationnelles
et contraintes SQL par Frédéric Brouard, alias SQLpro
Dans ma base de données j'ai une tache qui est soit typé soit appartient à une machine mais pas les deux.
Donc dans ma table j'ai la clé étrangère de type et machine.
Pour executer la contrainte évoqué plus, je pense à la contrainte check.
cependant, je ne sais pas comment la formuler.
Dans ma table tache j'aurais :
Il faudrait que je mette quelque chose du genre :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 MACHINE_ID INTEGER FOREIGN KEY REFERENCES T_MACHINE (MACHINE_ID), TYPE_ID INTEGER FOREIGN KEY REFERENCES T_TYPE (TYPE_ID)
Est ce possible avec un type de contrainte CHECK ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 MACHINE_ID INTEGER FOREIGN KEY REFERENCES T_MACHINE (MACHINE_ID) CHECK SI NOT NULL ALORS REGARDER SI TYPE_ID EST NULL, TYPE_ID INTEGER FOREIGN KEY REFERENCES T_TYPE (TYPE_ID) CHECK SI NOT NULL ALORS REGARDER SI MACHINE_ID EST NULL
Partager