Trigger
(disparador o
desencadenador)
en Mysql
Emerson E. Garay Gómez
www.slideshare.net/emergar
www.youtube.com/emergaray
Trigger
• Un trigger o disparador en una Base de datos, es un
procedimiento que se ejecuta cuando se cumple
una condición establecida al realizar una
operación. Dependiendo de la base de datos, los
triggers pueden ser de inserción (INSERT),
actualización (UPDATE) o borrado (DELETE). Algunas
bases de datos pueden ejecutar triggers al crear,
borrar o editar usuarios, tablas, bases de datos u
otros objetos.
2016www.slideshare.net/emergar Ing. Emerson E. Garay Gómez
Trigger (2)
La estructura básica de un trigger es:
• Llamada de activación: es la sentencia que
permite "disparar" el código a ejecutar.
• Restricción: es la condición necesaria para realizar
el código. Esta restricción puede ser de tipo
condicional o de tipo nulidad.
• Acción a ejecutar: es la secuencia de instrucciones
a ejecutar una vez que se han cumplido las
condiciones iniciales.
2016www.slideshare.net/emergar Ing. Emerson E. Garay Gómez
Un trigger tiene
• Un nombre
• Momento en que se desencadenan o disparan:
before (antes)
after (despues)
• Evento que lo activa:
insert (al insertar en la tabla)
update (al actualizar en la tabla)
delete (al eliminar en la tabla)
2016www.slideshare.net/emergar Ing. Emerson E. Garay Gómez
Trigger (3)
• Los triggers son usados para mejorar la
administración de la Base de datos, sin necesidad
de contar con que el usuario ejecute sentencias
de SQL determinadas para tal efecto. Además,
pueden generar valores de columnas, pueden
prevenir errores de datos, sincronizar tablas,
modificar valores de una vista, auditorías de
seguridad, etc.
2016www.slideshare.net/emergar Ing. Emerson E. Garay Gómez
Tipos de Trigger
Existen dos tipos de disparadores que se clasifican
según la cantidad de ejecuciones a realizar:
• Row Triggers (o disparadores de fila): son aquellos
que se ejecutaran n-veces si se llaman n-veces
desde la tabla asociada al trigger.
• Statement Triggers (o disparadores de secuencia):
son aquellos que sin importar la cantidad de veces
que se cumpla con la condición, su ejecución es
única.
2016www.slideshare.net/emergar Ing. Emerson E. Garay Gómez
Sintaxis Básica
DELIMITER $$
CREATE TRIGGER nombre_del_trigger {BEFORE|AFTER}
{UPDATE|INSERT|DELETE} ON nombre_de_la_tabla
FOR EACH ROW
BEGIN
<bloque_de_instrucciones>
END
$$
DELIMITER ;
2016www.slideshare.net/emergar Ing. Emerson E. Garay Gómez
NEW y OLD en Triggers
OLD indica el valor antiguo de la columna y NEW el
valor nuevo que pudiese tomar.
Por ejemplo: OLD.existencia ó NEW.existencia
 Al usar INSERT solo se puede utilizar NEW, ya que
insertar agrega nuevos valores.
 Al usar UPDATE se puede utilizar OLD y NEW, ya que
se modifican valores existentes por nuevos.
 Si se usa DELETE se utiliza OLD debido a que se
borraran valores que existen con anterioridad.
2016www.slideshare.net/emergar Ing. Emerson E. Garay Gómez

Triggers en BD mysql

  • 1.
    Trigger (disparador o desencadenador) en Mysql EmersonE. Garay Gómez www.slideshare.net/emergar www.youtube.com/emergaray
  • 2.
    Trigger • Un triggero disparador en una Base de datos, es un procedimiento que se ejecuta cuando se cumple una condición establecida al realizar una operación. Dependiendo de la base de datos, los triggers pueden ser de inserción (INSERT), actualización (UPDATE) o borrado (DELETE). Algunas bases de datos pueden ejecutar triggers al crear, borrar o editar usuarios, tablas, bases de datos u otros objetos. 2016www.slideshare.net/emergar Ing. Emerson E. Garay Gómez
  • 3.
    Trigger (2) La estructurabásica de un trigger es: • Llamada de activación: es la sentencia que permite "disparar" el código a ejecutar. • Restricción: es la condición necesaria para realizar el código. Esta restricción puede ser de tipo condicional o de tipo nulidad. • Acción a ejecutar: es la secuencia de instrucciones a ejecutar una vez que se han cumplido las condiciones iniciales. 2016www.slideshare.net/emergar Ing. Emerson E. Garay Gómez
  • 4.
    Un trigger tiene •Un nombre • Momento en que se desencadenan o disparan: before (antes) after (despues) • Evento que lo activa: insert (al insertar en la tabla) update (al actualizar en la tabla) delete (al eliminar en la tabla) 2016www.slideshare.net/emergar Ing. Emerson E. Garay Gómez
  • 5.
    Trigger (3) • Lostriggers son usados para mejorar la administración de la Base de datos, sin necesidad de contar con que el usuario ejecute sentencias de SQL determinadas para tal efecto. Además, pueden generar valores de columnas, pueden prevenir errores de datos, sincronizar tablas, modificar valores de una vista, auditorías de seguridad, etc. 2016www.slideshare.net/emergar Ing. Emerson E. Garay Gómez
  • 6.
    Tipos de Trigger Existendos tipos de disparadores que se clasifican según la cantidad de ejecuciones a realizar: • Row Triggers (o disparadores de fila): son aquellos que se ejecutaran n-veces si se llaman n-veces desde la tabla asociada al trigger. • Statement Triggers (o disparadores de secuencia): son aquellos que sin importar la cantidad de veces que se cumpla con la condición, su ejecución es única. 2016www.slideshare.net/emergar Ing. Emerson E. Garay Gómez
  • 7.
    Sintaxis Básica DELIMITER $$ CREATETRIGGER nombre_del_trigger {BEFORE|AFTER} {UPDATE|INSERT|DELETE} ON nombre_de_la_tabla FOR EACH ROW BEGIN <bloque_de_instrucciones> END $$ DELIMITER ; 2016www.slideshare.net/emergar Ing. Emerson E. Garay Gómez
  • 8.
    NEW y OLDen Triggers OLD indica el valor antiguo de la columna y NEW el valor nuevo que pudiese tomar. Por ejemplo: OLD.existencia ó NEW.existencia  Al usar INSERT solo se puede utilizar NEW, ya que insertar agrega nuevos valores.  Al usar UPDATE se puede utilizar OLD y NEW, ya que se modifican valores existentes por nuevos.  Si se usa DELETE se utiliza OLD debido a que se borraran valores que existen con anterioridad. 2016www.slideshare.net/emergar Ing. Emerson E. Garay Gómez