¿Cómo utilizar disparadores en MySQL? Explicación detallada de los activadores de MySQL

¿Cómo utilizar disparadores en MySQL? Explicación detallada de los activadores de MySQL

MySQL es un sistema de gestión de bases de datos relacionales de uso común que admite el uso de activadores. Un disparador es un procedimiento almacenado especial en MySQL que puede ejecutar una serie de declaraciones SQL en una tabla específica, similar al modelo de programación basada en eventos. Utilice desencadenadores para implementar una lógica empresarial compleja y mejorar el rendimiento y la confiabilidad de la base de datos. Este artículo presentará en detalle cómo usar activadores en MySQL .

1. Crea un disparador

En MySQL , los disparadores se pueden crear usando la declaración CREATE TRIGGER . La sintaxis básica de la declaración CREATE TRIGGER es la siguiente:

CREAR DISPARADOR nombre_disparador tiempo_disparador evento_disparador EN nombre_tabla PARA CADA FILA cuerpo_disparador;

Entre ellos, trigger_name es el nombre del disparador; trigger_time es el tiempo de ejecución del disparador, que puede ser ANTES o DESPUÉS ; trigger_event es el evento del disparador, que puede ser INSERT , UPDATE o DELETE ; table_name es el nombre del tabla donde se encuentra el disparador; trigger_body es el disparador La declaración SQL .

Por ejemplo, el siguiente disparador crea un disparador ANTES DE INSERTAR en la tabla de empleados , que establece automáticamente la hora de entrada a la hora actual cuando se une un nuevo empleado:

CREAR DISPARADOR set_join_date ANTES DE INSERTAR EN el empleado PARA CADA FILA

COMENZAR

ESTABLECER NUEVO.join_date = AHORA();

FIN;

2. Tiempo de ejecución del desencadenador

En MySQL , los disparadores pueden ejecutarse antes o después de un evento INSERT , UPDATE o DELETE . El tiempo de ejecución de un disparador puede ser ANTES o DESPUÉS .

ANTES del disparo

El disparador BEFORE se ejecuta antes de realizar una operación INSERT , UPDATE o DELETE y puede implementar algún preprocesamiento y verificación de datos en la base de datos.

Por ejemplo, el siguiente disparador crea un disparador ANTES DE ACTUALIZAR en la tabla de empleados . Cuando el salario del empleado es mayor que 10,000 , su salario se establece en 10,000 :

CREAR DISPARADOR limit_salary ANTES DE ACTUALIZAR EL empleado PARA CADA FILA

COMENZAR

SI NUEVO.salario > 10000 ENTONCES

ESTABLECER NUEVO.salario = 10000;

TERMINARA SI;

FIN;

DESPUÉS del disparo

El disparador DESPUÉS se ejecuta después de realizar una operación INSERT , UPDATE o DELETE y puede implementar algunos cálculos y posprocesamiento de datos en la base de datos.

Por ejemplo, el siguiente disparador crea un disparador DESPUÉS DE INSERTAR en la tabla de pedidos , que actualiza automáticamente el inventario del producto cuando se agrega un nuevo pedido:

CREAR DISPARADOR update_inventory DESPUÉS DE INSERTAR EL pedido PARA CADA FILA

COMENZAR

ACTUALIZAR producto SET inventario = inventario - NUEVO.cantidad DONDE id = NUEVO.product_id;

FIN;

3. Desencadenar eventos

En MySQL , los disparadores se pueden ejecutar en eventos INSERT , UPDATE o DELETE . El evento INSERT se activa cuando se inserta un nuevo registro, el evento UPDATE se activa cuando se actualiza un registro y el evento DELETE se activa cuando se elimina un registro. Los desencadenadores pueden ejecutarse en múltiples eventos.

Por ejemplo, el siguiente disparador crea un disparador ANTES DE INSERTAR o ACTUALIZAR en la tabla de empleados , y cuando el salario del empleado es mayor que 10,000 , su salario se establece en 10,000 :

CREAR DISPARADOR limit_salary ANTES DE INSERTAR O ACTUALIZAR EL empleado PARA CADA FILA

COMENZAR

SI NUEVO.salario > 10000 ENTONCES

ESTABLECER NUEVO.salario = 10000;

TERMINARA SI;

FIN;

4. Condiciones de ejecución del desencadenador

En MySQL , puede utilizar la declaración IF para controlar las condiciones de ejecución de los activadores. La declaración IF puede determinar si se ejecuta la declaración SQL en el disparador según las condiciones .

Por ejemplo, el siguiente activador crea un activador ANTES DE INSERTAR en la tabla de empleados . Cuando el salario del empleado es inferior a 5000 , su hora de entrada se establece en la hora actual:

CREAR DISPARADOR set_join_date ANTES DE INSERTAR EN el empleado PARA CADA FILA

COMENZAR

SI NUEVO.salario < 5000 ENTONCES

ESTABLECER NUEVO.join_date = AHORA();

TERMINARA SI;

FIN;

5. Activar el control del proceso

En MySQL , los disparadores pueden usar declaraciones de control de flujo para controlar el flujo de ejecución del programa, como declaraciones IF , declaraciones CASE , declaraciones WHILE , declaraciones LOOP , etc. Las declaraciones de control de flujo pueden ayudar a los desarrolladores a implementar una lógica empresarial más compleja.

Por ejemplo, el siguiente activador crea un activador ANTES DE INSERTAR en la tabla de empleados . Cuando el salario del empleado es inferior a 5000 , su hora de incorporación se establece en la hora actual; de lo contrario, su hora de incorporación se establece en la hora de hace un mes:

CREAR DISPARADOR set_join_date ANTES DE INSERTAR EN el empleado PARA CADA FILA

COMENZAR

SI NUEVO.salario < 5000 ENTONCES

ESTABLECER NUEVO.join_date = AHORA();

DEMÁS

SET NEW.join_date = DATE_SUB(AHORA(), INTERVALO 1 MES);

TERMINARA SI;

FIN;

6. Optimización de desencadenantes

Los activadores pueden ayudar a los desarrolladores a optimizar el rendimiento y la confiabilidad de la base de datos. A continuación se ofrecen algunos consejos de optimización para los activadores:

Minimice el tiempo de ejecución de los desencadenadores y evite que se vuelvan grandes y complejos.

Evite ejecutar sentencias SQL complejas en desencadenadores, ya que las sentencias SQL complejas provocarán una degradación del rendimiento.

Utilice condiciones de ejecución de desencadenadores y declaraciones de control de flujo para controlar el flujo de ejecución y evitar la ejecución innecesaria de desencadenadores.

Evite ejecutar varias declaraciones SQL en desencadenadores , ya que varias declaraciones SQL provocarán una degradación del rendimiento.

7. Resumen

Un disparador es un procedimiento almacenado especial en MySQL que puede ejecutar una serie de declaraciones SQL en una tabla específica, similar al modelo de programación basada en eventos. Este artículo presenta cómo crear disparadores en MySQL , controlar el tiempo de ejecución del disparador, el control de eventos y procesos, optimizar los disparadores, etc. Los desarrolladores pueden utilizar activadores de manera flexible según las necesidades y escenarios para mejorar la eficiencia y confiabilidad de la base de datos MySQL .

Supongo que te gusta

Origin blog.csdn.net/thanklife/article/details/131964017
Recomendado
Clasificación