J'essaie de créer une table dans Oracle qui est régie par plusieurs contraintes d'intégrité. Le tableau se compose d'une base de données d'étudiants hypothétique. L'une des règles de la base de données est que pour qu'un étudiant soit classé comme junior, il doit avoir complété entre 55 et 84 heures de crédit (inclusivement).Contrainte d'intégrité d'Oracle Check
Je dois créer une contrainte d'intégrité pour appliquer cette règle, mais je ne suis pas entièrement sûr de la manière de le faire. J'ai le sentiment qu'une contrainte CHECK serait utile dans cette situation.
Jusqu'à présent, je ... ont
CONSTRAINT IC4 CHECK (hours >=55 AND hours <= 84),
Ce code est valable, mais il ne détermine pas si le dossier de l'étudiant est un junior.
La mise en place de ma table est ...
CREATE TABLE Students (id INTEGER,
name CHAR(10) NOT NULL,
classification CHAR(10) NOT NULL,
hours INTEGER,
gpa NUMBER(3,2) NOT NULL,
mentor INTEGER);
Donc, si nous essayons d'insérer ...
INSERT INTO Students VALUES (50, 'Kim', 'junior', 34, 3.5, 40);
... serait violé la contrainte d'intégrité parce que le dossier est essayer d'être stocké comme un «junior», mais l'étudiant a seulement terminé 34 heures.
Comment pourrais-je écrire une contrainte qui appliquerait ces règles?