voila ce schéma
et voila la question:
Écrire un (des) déclencheur(s) qui empêche(nt) d'avoir dans la BD des personnes ayant écrit plus de 2 œuvres et étant traducteur d'un livre
la réponse sur la table ecrit_par :
j'aimerais bien que vous m'expliquiez brièvement ce que fais ce bout de code
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
16
17
18
19
20
21
22
23 create trigger pas2oeuvresTraducteur on ecrit_par after insert as declare @estTraducteur int declare @idPersonne int begin set nocount on; select @estTraducteur=0 select @idPersonne=ecrivain from inserted select @estTraducteur=count(trad),count(ecrivain) from ecrit_par join traducteur_ecrivain on @idPersonne=ecrivain join traduit_par on tradecr=trad where @idPersonne=trad group by trad having count(ecrivain) > 2 if(@estTraducteur > 0) ROLLBACK TRANSACTION end
+
ce que je comprends pas:
on a mis after insert faut pas accepter l'enregistrement , on devrait pas déclencher le trigger avant?
cette ligne :et là aussi y'a-t-il une erreur ?? :
Code : Sélectionner tout - Visualiser dans une fenêtre à part set nocount on;et c'est invalider la saisie ,mais transaction je comprends pas
Code : Sélectionner tout - Visualiser dans une fenêtre à part count(trad),count(ecrivain)
Code : Sélectionner tout - Visualiser dans une fenêtre à part ROLLBACK TRANSACTION
Partager