Las cookies nos permiten ofrecer nuestros servicios. Al utilizar nuestros servicios, aceptas el uso que hacemos de las cookies. Más Información. Aceptar

Triggers en MySQL

Sergio Perales
Triggers en MySQL

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

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

Relacionado

Te dejamos una selección de cursos, carreras y artículos

Stored procedures en MySQL

Stored procedures en MySQL

Lenguajes de programación

28 de Octubre de 2013

Disponibles desde MySQL 5.0 Son especialmente útiles:

  •  Cuando varias aplicaciones necesitan una misma consulta (así está centralizada)
  •  En entornos donde la seguridad es muy impor...

Estas son algunas de las empresas que ya confían en OpenWebinars

Profesores y profesionales

Nuestros docentes son profesionales que trabajan día a día en la materia que imparten

Conviértete en profesor de OpenWebinars