Salta el contingut

DAM - DAW - MP 0484 Bases de Dades - NF5

Pràctica 11 – Triggers

En aquesta pràctica, creareu disparadors (triggers) que executaran procediments associats.

Per fer aquests exercicis cal tenir les següents taules creades (Compte que li deixem les PKs):

CREATE OR REPLACE TABLE EMPLEATS LIKE empresa.EMPLOYEES;
INSERT INTO EMPLEATS SELECT * FROM empresa.EMPLOYEES;
CREATE OR REPLACE TABLE FEINES LIKE empresa.JOBS;
INSERT INTO FEINES SELECT * FROM empresa.JOBS;

Canvieu el delimitador per a treballar millor (si ho feu des de la shell)

DELIMITER //

Es recomana, per possibles errades, treballar amb una transacció

START TRANSACTION //
SAVEPOINT P1 //
i així, en qualsevol moment poder desfer el que s’ha fet

ROLLBACK TO P1 //
  1. Els empleats haurien de rebre un augment automàtic del salari si s'incrementa el salari mínim d'un lloc de treball. Implementeu aquest requisit mitjançant un disparador a la taula FEINES.

    1. Creeu un procediment emmagatzemat anomenat UPD_EMP_SAL per actualitzar l'import del salari. Aquest procediment accepta dos paràmetres: l'identificador del lloc de treball (job_id) per al qual s'ha d'actualitzar el salari i el nou salari mínim per a aquesta feina (min_salary). Aquest procediment s'executarà des del disparador de la taula FEINES.

    2. Creeu un disparador anomenat T_UPDATE_EMP_SALARY, a la taula FEINES, que cridi el procediment UPD_EMP_SAL, quan s'actualitzi el salari mínim de la taula FEINES. Quan creieu que caldrà cridar aquest esdeveniment, BEFORE o AFTER FEINES?

    3. Consulteu la taula EMPLEATS per veure el salari actual dels empleats que són programadors (IT_PROG).

    4. Augmenteu el salari mínim dels Programadors (IT_PROG) de 4.000 a 5.500.

    5. Torneu a consultar la taula EMPLEATS per veure el salari actual dels empleats que són programadors (IT_PROG) i compareu-la amb el sou anterior.