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
  • Escrito por Sergio Perales el 26 de Octubre de 2013
  • <1 min de lectura | Backend
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

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