0% encontró este documento útil (0 votos)
2 vistas2 páginas

Introducción a Triggers en MySQL

Cargado por

mjoyala265
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
2 vistas2 páginas

Introducción a Triggers en MySQL

Cargado por

mjoyala265
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Trigger en MySQL

Un trigger en MySQL es un procedimiento almacenado que se ejecuta automáticamente


cuando se produce un evento específico en una tabla, como INSERT, UPDATE o DELETE. Pueden
utilizarse para aplicar reglas de negocio, auditar cambios en los datos, o mantener la integridad
referencial, entre otras cosas.

Sintaxis Básica:

CREATE TRIGGER nombre_trigger

{BEFORE | AFTER} {INSERT | UPDATE | DELETE}

ON nombre_tabla

FOR EACH ROW

BEGIN

-- Sentencias SQL aquí

END;

Ejemplo 1: Trigger para auditar cambios en una tabla

Supongamos que tenemos una tabla llamada clientes y queremos mantener un registro de los
cambios realizados en ella.

sql

CREATE TRIGGER auditar_cambios_clientes

AFTER INSERT ON clientes

FOR EACH ROW

BEGIN

INSERT INTO registro_cambios_clientes (accion, fecha, cliente_id)

VALUES ('INSERT', NOW(), [Link]);

END;

Ejemplo 2: Trigger para mantener la integridad referencial

Si queremos asegurarnos de que cada vez que se elimine un registro de una tabla ordenes,
también se eliminen registros relacionados en la tabla detalles_ordenes.

CREATE TRIGGER eliminar_detalles_ordenes

AFTER DELETE ON ordenes

FOR EACH ROW

BEGIN

DELETE FROM detalles_ordenes WHERE orden_id = [Link];

END;

Ejemplo 3: Trigger para aplicar una regla de negocio


Supongamos que queremos restringir la actualización de un campo estado en la tabla pedidos
para que solo se pueda cambiar de 'pendiente' a 'completado'.

CREATE TRIGGER validar_estado_pedido

BEFORE UPDATE ON pedidos

FOR EACH ROW

BEGIN

IF [Link] = 'pendiente' AND [Link] != 'completado' THEN

SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'No se puede cambiar el estado del pedido.';

END IF;

END;

También podría gustarte