Uso de triggers

Uso de (TRIGGERS)



primero crear el "SCHEMA"/tabla empresa, le damos a la opción del rayito para crearlo.


después le usamos la tabla con la opción "use empresa;" así ya tenemos asignada la tabla empresa


Después copiamos el código para generar la tabla "productos" y le damos en rayito.

CREATE TABLE productos(
Id_Producto INT NOT NULL AUTO_INCREMENT,
Nombre_Producto VARCHAR(30) NOT NULL,
Tipo_Producto VARCHAR(30) NOT NULL,
Precio_Producto VARCHAR(30) NOT NULL,
PRIMARY KEY (Id_Producto));


se creara la tabla "BitacoraProductos" y le damos en rayito para generarlo

CREATE TABLE BitacoraProductos(
IdBP INT(30) auto_increment primary key,
IdProductos INT(20),
NombreProducto_Nuevo varchar(30),
NombreProducto_Viejo varchar(30),
TipoProducto_Nuevo varchar(30),
TipoProducto_Viejo varchar(30),
PrecioProducto_Nuevo varchar(30),
PrecioProducto_Viejo varchar(30),
Usuario varchar(30),
Fecha datetime,
Accion varchar(15)) engine =innodb;



Generamos nuestro primer "TRIGGER" de insertar datos pero antes debemos seleccionarlo el trigger y despues darle en el rayito si no lo seleccionan no se hará nada y se generara error

CREATE TRIGGER InsertarProductos AFTER INSERT 
ON productos
FOR EACH ROW
INSERT INTO BitacoraProductos(IdProductos, NombreProducto_Nuevo, TipoProducto_Nuevo, PrecioProducto_Nuevo, Usuario, Fecha, Accion)
VALUES (NEW.Id_Producto,NEW.Nombre_Producto,NEW.Tipo_Producto,NEW.Precio_Producto, USER(),NOW(),'Inserto');


Insertamos los datos en productos;

Insert into productos (Id_Producto,Nombre_Producto,Tipo_Producto,Precio_Producto)
values("341531","PS4","Consola","300");

SELECT * FROM productos; - para visualizar


como podemos ver uso el trigger de insertar por que agregue datos de una nueva consola 


ahora vamos a eliminar el trigger insertar para agregar otros triggers.


agregamos el trigger modificar

CREATE TRIGGER ModificarProductos AFTER UPDATE
ON productos
FOR EACH ROW
INSERT INTO BitacoraProductos(IdProductos,NombreProducto_Nuevo,NombreProducto_Viejo, TipoProducto_Nuevo,TipoProducto_Viejo,PrecioProducto_Nuevo, PrecioProducto_Viejo,Usuario,Fecha, Accion)
VALUES (old.Id_Producto,NEW.Nombre_Producto,old.Nombre_Producto,NEW.Tipo_Producto,old.Tipo_Producto,NEW.Precio_Producto,old.Precio_Producto, USER(),NOW(),'Modifico');


eliminamos el trigger modificar con "DROP TRIGGER"


agregamos el trigger de eliminar

CREATE TRIGGER EliminarProductos AFTER DELETE
ON productos
FOR EACH ROW
INSERT INTO BitacoraProductos(IdProductos,NombreProducto_Viejo,TipoProducto_Viejo,PrecioProducto_Viejo,Usuario,Fecha,Accion)
VALUES(old.Id_Producto,old.Nombre_Producto,old.Tipo_Producto,old.Precio_Producto,USER(),NOW(),'Eliminar');



como podemos ver ya se utilizo eliminar,modificar y insertar en las tablas con los triggers.


Comentarios