
EJERCICIOS RESUELTOS
DE TRIGGERS #1
¡Saludos cibernauta! hoy en conocesobreinformatica.com te presentamos el siguiente artículo titulado: “Ejercicios Resueltos de Triggers # 1".
Vamos a practicar lo aprendido con unos cuantos ejercicios muy comunes en nuestra carrera de informática.
Empecemos...
INTRODUCCIÓN A LA BASES DE DATOS
TABLA MODELO
A continuación, te mostramos la tabla sobre la que vamos a trabajar y desarrollar nuestros triggers:
CREATE TABLE empleados
(dni
char(4) PRIMARY KEY,
nomemp
varchar2(15),
mgr
char(4),
salario
integer DEFAULT 1000,
usuario
integer DEFAULT 1000,
fecha
date );
ALTER TABLE EMP ADD(
FOREIGN KEY (mgr) REFERENCES empleados (DNI) );
EJERCICIO # 1
- Crear un trigger sobre la tabla empleados para que no se permita que un empleado sea jefe (MGR) de más de cinco empleados:
CREATE OR REPLACE TRIGGER jefes
BEFORE
INSERT ON empleados
FOR EACH ROW
DECLARE
supervisa INTEGER;
BEGIN
SELECT count(*) INTO supervisa
FROM empleados WHERE mgr = :new.mgr;
IF (supervisa > 4)
THEN raise_application_error
(-20600,:new.mgr||'no se puede supervisar más de 5');
END IF;
END;
EJERCICIO # 2
- Crear un trigger para impedir que se aumente el salario de un empleado en más de un 20%.
Para ello es necesario comparar los valores :old.salario y :new.salario cada vez que se modifica el atributo salario (BEFORE UPDATE):
CREATE OR REPLACE TRIGGER aumentoSalario
BEFORE UPDATE OF salario ON empleados
FOR EACH ROW
BEGIN
IF :NEW.salario > :OLD.salario*1.20
THEN raise_application_error
(-20600,:new.Salario||'no se puede aumentar el salario más de un 20%');
END IF;
END;
Hemos llegamos al final de este artículo, como equipo de CSI esperamos realmente que toda la información recopilada y analizada te resulte de utilidad en tus estudios o vida laboral.
Te recordamos que hoy por hoy conocesobreinformatica cuenta con las siguientes redes para mantener al tanto de toda la información nueva:
- Suscripciones de correo electrónico, se el primero en enterarte de lo que publicamos: