Nantes Université
Skip to content
GitLab
Explorer
Connexion
S'inscrire
Navigation principale
Rechercher ou aller à…
Projet
IUT
Gestion
Activité
Membres
Labels
Programmation
Tickets
Tableaux des tickets
Jalons
Wiki
Code
Requêtes de fusion
Dépôt
Branches
Validations
Étiquettes
Graphe du dépôt
Comparer les révisions
Extraits de code
Compilation
Pipelines
Jobs
Planifications de pipeline
Artéfacts
Déploiement
Releases
Registre de paquets
Registre de conteneurs
Registre de modèles
Opération
Environnements
Modules Terraform
Surveillance
Incidents
Service d'assistance
Analyse
Données d'analyse des chaînes de valeur
Analyse des contributeurs
Données d'analyse CI/CD
Données d'analyse du dépôt
Expériences du modèle
Aide
Aide
Support
Documentation de GitLab
Comparer les forfaits GitLab
Forum de la communauté
Contribuer à GitLab
Donner votre avis
Raccourcis clavier
?
Extraits de code
Groupes
Projets
Afficher davantage de fils d'Ariane
Alexandre CLENET
IUT
Validations
f5ce34e5
Valider
f5ce34e5
rédigé
2 years ago
par
E214194U
Parcourir les fichiers
Options
Téléchargements
Correctifs
Plain Diff
bd
parent
a240f48a
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
Modifications
1
Masquer les modifications d'espaces
En ligne
Côte à côte
Affichage de
1 fichier modifié
BUT2/BD/td2.sql
+82
-10
82 ajouts, 10 suppressions
BUT2/BD/td2.sql
avec
82 ajouts
et
10 suppressions
BUT2/BD/td2.sql
+
82
−
10
Voir le fichier @
f5ce34e5
...
...
@@ -46,18 +46,90 @@ delete from projet where nuproj=135;
*/
--EXERCICE 3 :
-- A
/*
CREATE OR REPLACE TRIGGER hebdoduree AFTER
insert or update ON employe
DECLARE
REC_employe employe%ROWTYPE;
BEGIN
Select * into REC_employe from employe e
where (select sum(duree) from travail t where e.nuempl=t.nuempl)> hebdo ;
--1 seul enregistrement trouvé en lève une exception
RAISE_APPLICATION_ERROR (-20002,'viol de la règle :temps de travail > hebdo');--1
EXCEPTION
WHEN NO_DATA_FOUND THEN NULL;--0 enregist
WHEN TOO_MANY_ROWS THEN
RAISE_APPLICATION_ERROR ( -20003,'viol de la règle :temps de travail > hebdo (multiple)' );-- 2 ou pl+
END;
*/
/*
update employe
set employe.hebdo = 25;
*/
CREATE
OR
REPLACE
TRIGGER
TRIG3
AFTER
insert
or
update
ON
Table2
-- B
/*
CREATE OR REPLACE TRIGGER nbrprojet AFTER
insert or update ON projet
DECLARE
REC_
T1
T1
%
ROWTYPE
;
REC_
employe employe
%ROWTYPE;
BEGIN
S
ELECT
*
INTO
REC_T1
FROM
T1
WHERE
Condition
;
//
1
seul
enregistrement
trouv
é
en
l
è
ve
une
exception
RAISE_APPLICATION_ERROR
(
num
é
ro
,
message
);
//
1
S
elect * into REC_employe from employe e
where (select count(*) from projet p where e.nuempl=p.resp)> 3
;
--
1 seul enregistrement trouvé en lève une exception
RAISE_APPLICATION_ERROR (
-20004,'viol de la règle : employé a trop de resp');--
1
EXCEPTION
WHEN
NO_DATA_FOUND
THEN
NULL
;
//
0
enregist
WHEN NO_DATA_FOUND THEN NULL;
--
0 enregist
WHEN TOO_MANY_ROWS THEN
RAISE_APPLICATION_ERROR
(
...
);
//
2
ou
pl
+
END
;
\ No newline at end of file
RAISE_APPLICATION_ERROR ( -20005,'viol de la règle : employé a trop de resp (multiple)' );-- 2 ou pl+
END;
*/
/*
insert into projet VALUES (666,'zzz',30);
insert into projet VALUES (666,'zzz',57);
*/
-- C
/*
CREATE OR REPLACE TRIGGER nbrprojet2 AFTER
insert or update ON concerne
DECLARE
REC_service service%ROWTYPE;
BEGIN
Select * into REC_service from service s
where (select count(*) from concerne c where s.nuserv=c.nuserv)> 3 ;
--1 seul enregistrement trouvé en lève une exception
RAISE_APPLICATION_ERROR (-20008,'viol de la règle : Plus de 3 projet dans le service');--1
EXCEPTION
WHEN NO_DATA_FOUND THEN NULL;--0 enregist
WHEN TOO_MANY_ROWS THEN
RAISE_APPLICATION_ERROR ( -20009,'viol de la règle : Plus de 3 projet dans le service (multiple)' );-- 2 ou pl+
END;
*/
/*
select * from service s
where (select count(*) from concerne c where s.nuserv=c.nuserv)> 3 ;
insert into concerne VALUES (1,237);
*/
--D
/*
CREATE OR REPLACE TRIGGER chefsalaireup AFTER
insert or update ON employe
DECLARE
REC_employe employe%ROWTYPE;
BEGIN
Select * into REC_employe from employe e
where (select sum(duree) from travail t where e.nuempl=t.nuempl)> hebdo ;
--1 seul enregistrement trouvé en lève une exception
RAISE_APPLICATION_ERROR (-20010,'viol de la règle :chef gagne moins que empl');--1
EXCEPTION
WHEN NO_DATA_FOUND THEN NULL;--0 enregist
WHEN TOO_MANY_ROWS THEN
RAISE_APPLICATION_ERROR ( -20011,'viol de la règle : chef gagne moins que empl (multiple)' );-- 2 ou pl+
END;
*/
select
*
from
employe
a
where
salaire
>
(
select
chef
from
service
)
;
chef
=
nuempl
\ No newline at end of file
Ce diff est replié.
Cliquez pour l'agrandir.
Aperçu
0%
Chargement en cours
Veuillez réessayer
ou
joindre un nouveau fichier
.
Annuler
You are about to add
0
people
to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Enregistrer le commentaire
Annuler
Veuillez vous
inscrire
ou vous
se connecter
pour commenter