Vous êtes sur la page 1sur 2

Module : Bases de données Avancées

Abir Gorrab
4 ème ING PL/SQL
2020/2021

TP5 : Les Triggers en PL/SQL

Considérons le schéma suivant :


PERSONNE(refpers,nom, prenom, statut, salaire)
PROJET(refproj, titre, nb_heures_prevues)
TACHE(#refproj,#refpers, semaine, nb_heures)

1. Ecrire un trigger qui exige que tous les noms des personnes doivent être sauvegardés en
majuscule.
2. Ecrire un trigger qui permet d’afficher le numéro d’une personne à effacer (refpers).
3. Ecrire un trigger qui interdit l’insertion d’une personne de numéro (refpers) inférieur à
10.
4. Ecrire un trigger qui permet de suivre les opérations faites sur une table donnée
(personne et projet par exemple).
5. Seules les personnes qui sont ‘manager’ ou ‘président’ gagnent plus que 3000.
6. Eviter que le salaire mis à jour ne soit inférieur au salaire initial.
7. Interdire les suppressions sur la table Projet.
8. On désire vérifier que le nombre d’heures effectuées ne dépasse pas le nombre d’heures
prévues pour la réalisation d’un projet. En cas de dépassement, on écrit un message dans
la table TAB_LOG prévue pour recueillir les anomalies constatées lors de la gestion des
projets.
Le schéma de la table TAB_LOG est TAB_LOG(date_pb, refproj, message) .
Ecrire le trigger correspondant.
Voici les ordres SQL qui ont servi à créer le schéma de la base de données :
create table PERSONNE(
refpers NUMBER(3) primary key,
nom VARCHAR2(20) not null,
prenom VARCHAR2(20) not null,
statut VARCHAR2(20),
salaire number(4)
);
create table PROJET(
refproj NUMBER(3) primary key,
titre VARCHAR2(20) not null,
nb_heures_prevues NUMBER default 0 not null
);
create table TACHE(
refproj NUMBER(3),
refpers NUMBER(3),
semaine NUMBER(2),
constraint tache_pkey primary key (refproj,refpers,semaine),
nb_heures NUMBER(2),
constraint nb_heures_non_negatif check (nb_heures >= 0),
constraint semaine_correcte check (semaine between 1 and 52),
constraint tache_projet_fkey FOREIGN KEY (refproj) references projet (refproj),
constraint tache_pers_fkey FOREIGN KEY (refpers) references personne (refpers)
);

Vous aimerez peut-être aussi