Bonjour à tous,
J'ai une table d'inscriptions à des cours définie ainsi :

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
)
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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.