Bonjour à tous,
J'ai une table d'inscriptions à des cours définie ainsi :
Les modifications ne sont permises que sur la colonne note par un déclencheur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 )
Toutefois je veux empècher l'usager de faire une modification ainsi :
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?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 UPDATE Inscription SET note = 'A';
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.
Partager