0% encontró este documento útil (0 votos)
194 vistas15 páginas

Teoria Triggers

Este documento proporciona una introducción a los triggers en MySQL. Explica que los triggers son objetos que contienen código que se ejecuta automáticamente en respuesta a eventos como la inserción, actualización o eliminación de datos. Describe cómo crear triggers, los diferentes tipos de eventos a los que pueden responder triggers, y cómo eliminar triggers. También cubre el uso de programación de eventos en MySQL para ejecutar tareas periódicas.

Cargado por

jorcaza2
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)
194 vistas15 páginas

Teoria Triggers

Este documento proporciona una introducción a los triggers en MySQL. Explica que los triggers son objetos que contienen código que se ejecuta automáticamente en respuesta a eventos como la inserción, actualización o eliminación de datos. Describe cómo crear triggers, los diferentes tipos de eventos a los que pueden responder triggers, y cómo eliminar triggers. También cubre el uso de programación de eventos en MySQL para ejecutar tareas periódicas.

Cargado por

jorcaza2
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

ESPECIALIZACIN EN BASE DE DATOS

RISARALDA
CENTRO DE DISEO EN INNOVACIN TECNOLGICA INDUSTRIAL
DOSQUEBRADAS

Diego Fernando Salcedo Toro


INGENIERO DE SISTEMAS
INSTRUCTOR SENA CDITI TELEINFORMATICA
[email protected]
[email protected]

TU CELULAR EN MODO
SILENCIO O VIBRACIN
PORFAVOR NO CONSUMIR
ALIMENTOS EN EL SALON DE
CLASE

MYSQL 5.7
Mysql : Triggers
Objetivos:
Describir los triggers
Identificar cuando utilizar triggers
Crear un nuevo trigger
Eliminar un triggers
Describir eventos programados

MYSQL 5.7
Mysql : Triggers

Que son los disparadores?


Triggers :
Objetos que contienen cdigo, similar a procedimientos
almacenados
Creados dentro de una base de datos
Asociado a una tabla especifica
Activados automticamente para cada fila cuando una
tabla es modificada
Triggers nos permiten:
Responder a eventos en nuestra base de datos
Invocar operaciones automticamente cuando los
datos de la base de datos cambian

MYSQL 5.7
Mysql : Triggers

Casos en los cuales utilizar


Trigger
Utilice triggers para:
Examinar los datos antes de ser insertados o
actualizados
Verificar eliminaciones o actualizaciones
Modificar los datos si estn fuera de rango, antes de
un insert o update
Modificar como se comportan los INSERT, UPDATE y
DELETE para una tabla

Simular el comportamiento de las claves forneas


Hacer Logging de modificaciones de los datos
Crear resmenes de los datos modificados

MYSQL 5.7
Mysql : Triggers

Crear Triggers
Utilice el CREATE TRIGGER.
CREATE TRIGGER Tiene la sintaxis:

Ejemplo:

MYSQL 5.7
Mysql : Triggers

Eventos del Trigger


Triggers se definen para una tabla especifica.
Responden a eventos especficos y lo hacen antes o
despus de dichos eventos:
ANTES: El cdigo del trigger se ejecuta una vez por cada
fila afectada antes de que el evento cambie los datos de
la tabla.
DESPUES: El cdigo del trigger se ejecuta una vez por
cada fila despus de ser disparado el evento de cambio de
datos.

MYSQL 5.7
Mysql : Triggers

Usar ANTES los Triggers


ANTES El trigger se dispara antes de modificar los datos de la
tabla. Por ejemplo, podemos utilizarlos para validar la entrada
de datos y corregir o evitar entradas incorrectas antes de
almacenarlos.
Hay tres eventos asociados con el trigger BEFORE:
ANTES DE INSERT: Este evento se dispara antes de
adicionar nuevos datos a cada fila en la tabla
ANTES DE UPDATE: Este evento se dispara antes de
un update o antes de sobreescribir cualquier dato en
una tabla.
ANTES DE DELETE Tse dispara antes de eliminar datos
de una tabla.

MYSQL 5.7
Mysql : Triggers

Utilizar los Triggers DESPUES


DESPUES Se disparan despus de modificar los datos. Por
example, los podemos utilizar para logging o auditar datos.
Existen tres eventos asociados con el AFTER:
AFTER INSERT: Se dispara aantes de adicionar nuevos
datos a la tabla.
AFTER UPDATE: Este evento se dispara despus de
actualizar o sobreescribir datos existentes en la tabla
con los nuevos datos.
AFTER DELETE: Este evento se dispara despus de
eliminar los datos de la tabla.

MYSQL 5.7
Mysql : Triggers

Trigger Metadata
Utilice SHOW TRIGGERS tpara ver informacin sobre ellos.

MYSQL 5.7
Mysql : Triggers

Manejo de Errores en los Triggers


MySQL maneja los errores durante la ejecucin del trigger de
esta manera:
Si un trigger BEFORE falla, el servidor no realiza la
operacin en la fila correspondiente.
El servidor ejecuta un trigger AFTER solo si el trigger
BEFORE tse ejecuto en la fila satisfactoriamente.
El servidor realiza un rolls back de la transaccin si el
trigger falla.

MYSQL 5.7
Mysql : Triggers

Eliminando Triggers
Utilizar DROP TRIGGER La sistaxis es:
DROP TRIGGER <trigger_name>;

Cuando utilizamos DROP TRIGGER, el servidor busca por el


trigger en el schema actual. Si el trigger que estamos
eliminando se encuentra en otro schema, simplemente incluir
el nombre del schema:
DROP TRIGGER <schema_name>.<trigger_name>;

MYSQL 5.7
Mysql : Triggers

Restricciones de los Triggers


No podemos crear triggers que incluyan las siguientes
sentencias:
Sentencias que funcionan en sentencias preparadas
como
PREPARE, EXECUTE, DEALLOCATE PREPARE

Sentencias que implcitamente o explcitamente realicen


una transaccin con commit o roll back

Sentencias que retornan valores utilizando set"


Sentencias que utilizan FLUSH

Sentencias recursivas. Los triggers no pueden incluir


sentencias que causen que el mismo trigger se ejecute, o
que modifique filas en la misma tabla activa.

MYSQL 5.7
Mysql : Triggers

El scheduler de MySQL
Los eventos de MySQL son tareas de la base de datos
las cuales se ejecutan de acuerdo a una programacin.
La diferencia con respecto a un trigger el cual se
invoca con cambios en la base de datos, es que el
Schedule se invoca en una fecha y hora especifica.
Similar a programar tareas con cron

til para tareas de mantenimiento como el


almacenamiento de datos o un generador de reportes

Uso:
Encienda la variable global del programador con
event_scheduler.
Crea el evento: CREATE EVENT...ON SCHEDULE AT
Observa el evento con SHOW PROCESSLIST.

MYSQL 5.7
Mysql : Triggers

El scheduler de MySQL

1.- Se crea el evento myevent


2.- Se configura para
ejecutarse cada minuto
3.- Por defecto el evento es
eliminado despus de expirar,
con ON COMPLETION
PRESERVE cambia este
comportamiento
4.- Ejecuta la sentencia SQL.
5.- Muestra el evento a ser
activado, si este no se puede
observar, revise la variable
global:
mysql> SELECT @@event_scheduler;
+-------------------+
| @@event_scheduler |
+-------------------+
| OFF
|
+-------------------+
1 row in set (0.00 sec)
mysql> SET GLOBAL event_scheduler =
ON;

También podría gustarte