Bases de Datos

Triggers en MySQL

Vamos a ver que són, cómo utilizarlos y  las limitaciones que tienen los Triggers, disponibles a partir de MySQL 5.0.2.

Publicado el 26 de Octubre de 2013
Compartir

Disponibles a partir de MySQL 5.0.2 Los Triggers o disparadores permiten ejecutar sentencias en un momento determinado. Implica que parte de la lógica no está en el código y puede dificultar su localización (especialmente para personal nuevo en el proyecto, etc…) Recomendable su uso para cálculos o consistencia de datos (borrados en cascada p.e.). Sintaxis:

CREATE TRIGGER nombre_disp momento_disp evento_disp ON nombre_tabla FOR EACH ROW sentencia_disp
  • nombre_disp: nombre del trigger
  • momento_disp: before/after
  • evento_disp: insert/update/delete

(No puede haber dos disparadores en una misma tabla que correspondan al mismo momento y sentencia)

  • nombre_tabla
  • sentencia_disp: Comando a ejecutar
Conviértete en un Backend Developer
Domina los lenguajes de programación más demandados. Accede a cursos, talleres y laboratorios para crear proyectos con Java, Python, PHP, Microsoft .NET y más
Comenzar gratis ahora

Ejemplo:

CREATE TABLE test1(a1 INT);

CREATE TABLE test2(a2 INT);

DELIMITER | //Se cambia el delimitador para poder incluir varias querys dentro

CREATE TRIGGER testref AFTER INSERT ON test1

FOR EACH ROW

BEGIN

INSERT INTO test2 SET a2 = NEW.a1; //Query con delimitador standard dentro del trigger

END

|//Fin de la declaración del trigger

DELIMITER ;

Notas:

  • El alias OLD hace referencia a un registro ya existente antes de un update o delete.
  • El alias NEW hace referencia a un registro nuevo después de un insert o update.
  • La sentencia CREATE TRIGGER necesita el privilegio SUPER.

Limitaciones (dependiendo de la versión de MySQL):

  • Un trigger no puede hacer referencia a una tabla por su nombre, excepto a través de OLD y NEW (sólo aplicable a comandos SELECT)
  • Un trigger no puede hacer llamadas a stored procedures (no se puede usar la sentencia CALL)
  • No pueden utilizarse transacciones en un trigger
Mejora las habilidades de tus desarrolladores
Acelera la formación tecnológica de tus equipos con OpenWebinars. Desarrolla tu estrategia de atracción, fidelización y crecimiento de tus profesionales con el menor esfuerzo.
Solicitar más información

Compartir este post

También te puede interesar...

Tecnología

Funciones en MySQL

31 Octubre 2013 Sergio Perales
Tecnología

Stored procedures en MySQL

28 Octubre 2013 Sergio Perales
Creación y administración de Bases de Datos

Curso de creación y administración de Bases de Datos SQL

4 horas y 12 segundos · Curso

Prepárate para convertirte en el héroe de los datos con este curso. Si sabes lo básico de informática y has jugueteado con SQL, estás listo …

  • Bases de Datos
Artículos
Ver todos