[Oracle 10] Limiter le nombre de lignes affectées par un Update
Bonjour à tous,
J'ai une table d'inscriptions à des cours définie ainsi :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| -- Creation de la table des inscriptions.
CREATE TABLE Inscription (
id_etudiant INTEGER CONSTRAINT inscription_NN01 NOT NULL
CONSTRAINT inscription_FK01 REFERENCES Etudiant
ON DELETE CASCADE,
id_cours INTEGER CONSTRAINT inscription_NN02 NOT NULL,
no_groupe INTEGER CONSTRAINT inscription_NN03 NOT NULL,
id_session INTEGER CONSTRAINT inscription_NN04 NOT NULL,
note CHAR(1) CONSTRAINT inscription_CK01
CHECK ( note BETWEEN 'A' AND 'E' ),
--
CONSTRAINT inscription_PK PRIMARY KEY( id_etudiant, id_cours, no_groupe, id_session ),
CONSTRAINT inscription_FK02 FOREIGN KEY( id_cours, no_groupe, id_session )
REFERENCES Groupe
) |
Les modifications ne sont permises que sur la colonne note par un déclencheur.
Toutefois je veux empècher l'usager de faire une modification ainsi :
Code:
1 2 3
|
UPDATE Inscription
SET note = 'A'; |
ce qui affecterait toute la table. Je veux que la modification n'affecte qu'une ligne et pas plus. Puis-je faire cela avec un déclencheur BEFORE UPDATE?
Y a-t-il un moyen de connaître le nombre de lignes affectées par la modification avant que celle-ci soit complétée?
Merci de votre aide!
Yves.