Triggers

Cómo usar triggers

Programación de Bases de Datos (6.4.- Disparadores en MySQL)

Trigger para subir el salario:

CREATE TRIGGER subir_salario 
AFTER INSERT ON trabaja
FOR EACH ROW
BEGIN
  /*Declaración de variable local */
  DECLARE totalHoras INT;
  /*Obtenemos la suma de horas del empleado en los proyectos donde trabaja */
  SELECT SUM(nhoras) INTO totalHoras
  FROM trabaja
  WHERE cdemp = NEW.cdemp;
  /*Si supera las 100 horas trabajadas, incrementamos su salario */
  IF totalHoras > 100 THEN
    UPDATE empleado SET salario = salario + 50 WHERE cdemp = NEW.cdemp;
  END IF;
END

Ejecución:

Le asignamos 150 horas al empleado A14 en el proyecto MES

SELECT nombre, salario FROM empleado WHERE cdemp = 'A14';
INSERT INTO trabaja VALUES('A14', 'MES', 150);
SELECT nombre, salario FROM empleado WHERE cdemp = 'A14';

Le asignamos 10 horas al empleado A03 en proyecto DAG

SELECT nombre, salario FROM empleado WHERE cdemp = 'A03';
INSERT INTO trabaja VALUES('A03', 'DAG', 10);
SELECT nombre, salario FROM empleado WHERE cdemp = 'A03';

Triggers en MySQL

Cómo crear y utilizar Triggers en MySQL

Ejemplos de Triggers

MySQL Triggers

Más información:

Triggers en Oracle:

Libro (páginas 12-42): MySQL: Triggers, Funciones y Procedimientos

Triggers en Oracle

 

Deja una respuesta