Actividad 2
MANEJO DE FECHAS
TRIGGERS AFTER
COMO ESTAN LAS TABLAS ANTES DEL TRIGGER

delimiter //
MariaDB [subconsultas]> create trigger valorventa after insert on articulo
-> for each row
-> begin
-> update detalle set valorventa = (select valorunitario + (valorunitario * 0.23) from articulo where articulo.codigo = detalle.codigo);
-> end
-> //
MariaDB [subconsultas]> delimiter ; ///PUNTO Y COMA SEPARADO DEL DELIMITER
MariaDB [subconsultas]> show triggers;
- Los triggers son procedimientos automaticos que se activan despues de una accion, esta accion puede ser un insert, delete o update se trabaja con dos identificadores que son after (despues de) before (antes de)
- El after altera las otras tablas, el before la misma tabla que se invoca
ASI QUEDA LUEGO DEL TRIGGER

MariaDB [subconsultas]> delimiter //
MariaDB [subconsultas]> create trigger actualizar_existenciap after insert on detalle
-> for each row
-> begin
-> update articulo set existencia = cantidad - (select sum(cantidad) from detalle where detalle.codigo = articulo.codigo);
-> end
-> //
MariaDB [subconsultas]> delimiter ;
MariaDB [subconsultas]> show triggers;
RESULTADO

TRIGGERS BEFORE
MariaDB [subconsultas]> create database pruebadetrigger;
Query OK, 1 row affected (0.001 sec)
MariaDB [subconsultas]> use pruebadetrigger;
Database changed
MariaDB [pruebadetrigger]> Create table productos(
-> codigo varchar(12) primary key,
-> nombre varchar(30),
-> porgana int(2),
-> Costo int,
-> Valorventa int,
-> cantidad int
-> );

CREAMOS TRIGGER

ELIMINAMOS Y VOLVEMOS A INSERTAR PORQUE DEBE CALCULAR ANTES DE INGRESAR

NO ACTUALIZA PORQUE NO HAY TRIGGER QUE ACTUALICE CADA QUE SE INSERTE

CREAMOS TRIGGER QUE SI ACTUALICE

CREAMOS COPIA DE SEGURIDAD
C:\xampp\mysql\bin>mysqldump -B -uroot -p --routines pruebadetrigger>c:/xampp/pruebradetrigger.sql
Enter password:
C:\xampp\mysql\bin>mysqldump -B -uroot -p --routines subconsultas>c:/xampp/subconsultas.sql
CONTINUACIÓN MANEJO DE TRIGGERS