Download as pdf or txt
Download as pdf or txt
You are on page 1of 3

1 ejercicio

use employees;
CREATE TRIGGER comprador_long_nombre
BEFORE INSERT ON departaments
FOR EACH ROW
BEGIN
IF (LENGTH(NEW.DEPT_NAME < 5 )
SIGNAL SQL STATE ‘4500’ SET MESSAGE_TEXT = “” ;
END IF;
END

END//
DELIMITER ;

2 EJERCICIO

DELIMITER//
CREATE TRIGGER ‘MANAG2’ AFTER INSERT ON ‘DEPARTAMENTS’ FOR EACH ROW

BEGIN
DECLARE NUMEMP INT;
SELECT EMP_NO
INTO NUMEMP
FROM DEPT_MANAGER
WHERE to_date=’gggg-01-01’
order by from_date ASC
limit 1;
insert into dept_manager Cemp_no, dept_non, form_date, to_date)
values ( nujmEmp.NEW,dept_no.CURDATE(), ‘9999-01-01’);
END//
Delimiter;

3 EJERCICIO

CREATE TABLE REGISTRO (


id INT Auto_increment PRIMARY KEY,
Usuario VARCHAR (100)
Tabla VARCHAR (100)
operacion VARCHAR(10)
fecha_hora DATETIME,
);

CREATE USER ‘Ejecutar Triggers’@localhost’ INDENTIFIED BY ‘123’;


GRANT CREATE trigger, Execute ON ‘**’ TO
‘Ejecutar_triggers’@’localhost’;

DELIMITER//

CREATE trigger Registro_alto.Departaments


after insert on departaments FOR EACH ROW

BEGIN
INSERT INTO REGISTRO ( Usuario, Tabla, Operacion, fecha_hora )
VALUES (USER(), ‘Departament’, ‘Alta’, NOW())
END//

CREATE trigger Registro_bajo_departaments


after Delete on Departaments FOR EACH ROW

BEGIN

INSERT INTO REGISTRO (usuario, tabla, operacion , fecha_hora, ,


VALUES(USER(), ‘Departaments’, ‘Baja’, NOW())
END//

CREATE trigger Registro_Mod_Departament


after update on departament FOR EACH ROW
BEGIN
INSERT INTO REGISTRO ( Usuario , Tabla, Operación, fecha_hora )
VALUES (USER (), ‘Departament’, ‘MOdificacion’, Now())

END //
DELIMITER ;

DELIMITER //
CREATE trigger Validacion_salario
Before insert on empleados FOR EACH ROW
BEGIN
if NEW.salario < ‘45000’
set message_text= ‘El salario debe ser mas de 30000€’;
end if;
end //

DELIMITER ;

EJECICIO 6

SELECT trigger_name, event_object_table, action_statement,


action_timing
FROM information_schema.triggers
ORDER BY trigger_name LIMIT 1;

You might also like