Disparadores de MySQL (revisión)

Cuando hoy estaba pensando en una papelera de reciclaje de registros de eliminación, de repente pensé en activadores, que antes rara vez se usaban. Sin más, veamos primero su explicación:

En MySQL, un disparador es un procedimiento almacenado especial que se ejecuta automáticamente cuando ocurre un evento específico (como insertar, actualizar o eliminar datos).

Los activadores generalmente se utilizan para implementar una lógica empresarial compleja, como actualizar automáticamente los registros relacionados cuando se insertan nuevos datos, realizar algunas operaciones de limpieza adicionales cuando se eliminan datos, etc.

Hay dos tipos de disparadores en MySQL: disparadores a nivel de fila y disparadores a nivel de declaración. Los activadores a nivel de fila se ejecutan cuando cada fila de datos se ve afectada, mientras que los activadores a nivel de declaración se ejecutan después de ejecutar cada declaración SQL.

Lo entenderás después de ver un ejemplo:

 

CREATE TRIGGER log_deleted_user_menu_records AFTER UPDATE ON user_menu FOR EACH ROW
BEGIN
       --第一次判断
	IF
		OLD.deletestatus = 'NOT_DELETED' 
		AND NEW.deletestatus = 'USER_DELETED' THEN
			INSERT INTO deleted_records ( table_name, record_id, deleted_at, deletestatus )
		VALUES
			( 'user_menu', OLD.id, NOW(), 'USER_DELETED' );
		-- 第二个判断
		ELSEIF OLD.deletestatus = 'USER_DELETED' 
		AND NEW.deletestatus = 'TRASH_DELETED' THEN
			UPDATE deleted_records 
			SET deleted_at = NOW(),
			deletestatus = 'TRASH_DELETED' 
			WHERE
				table_name = 'user_menu' 
				AND record_id = OLD.id;
                        -- 最后走的判断
			ELSE UPDATE deleted_records 
			SET deleted_at = NOW(),
			deletestatus = 'DELETED' 
			WHERE
				table_name = 'user_menu' 
				AND record_id = OLD.id;
			
		END IF;
		
	END;

log_deleted_user_menu_records nombre del activador

DESPUÉS DE ACTUALIZAR EN user_menu PARA CADA FILA significa ejecutar después de que cada fila de la tabla user_menu cambie (por supuesto, también se puede ejecutar antes)

OLD.deletestatus se refiere al valor de eliminación de estado en el campo user_menu antes del cambio

NEW.deletestatus corresponde al nuevo valor.

Conocerás las otras frases de un vistazo,

Luego pruébelo, primero mire un registro con id = 3 en la tabla del menú de usuario a continuación,

En este momento, no hay registros_eliminados.

A continuación quiero cambiar el valor de eliminación de estado de id=3;

ACTUALIZACIÓN  test_database. user_menu ESTABLECER  deletestatus = 'USER_DELETED' DONDE  id = 3

En este momento, veamos los datos en la tabla de registros, se crea automáticamente un registro, que es la función del disparador;

Luego déjame contarte las cosas que debes tener en cuenta sobre los desencadenantes.

A continuación se detallan los pros y los contras de los desencadenantes y algunas consideraciones sobre cómo usarlos adecuadamente:

ventaja:

  1. Garantía de integridad de los datos: los activadores pueden imponer reglas comerciales y restricciones de integridad de los datos, como forzar que ciertas columnas no estén vacías, prohibir la inserción de datos duplicados, etc.
  2. Operaciones automatizadas: los activadores pueden realizar automáticamente operaciones como actualizar los valores de otras tablas o columnas al insertar, actualizar o eliminar datos.
  3. Mejore el rendimiento de la base de datos: los activadores pueden reducir las solicitudes de aplicaciones a la base de datos, reduciendo así la latencia de la red y la carga del servidor.

defecto:

  1. Difícil de mantener: en bases de datos grandes, los desencadenantes pueden volverse muy complejos y difíciles de entender y mantener.
  2. Rendimiento reducido: la ejecución de activadores puede reducir el rendimiento de la base de datos, especialmente cuando se procesan grandes cantidades de datos.
  3. Problemas de seguridad: los piratas informáticos pueden aprovechar los activadores, comprometiendo la seguridad de la base de datos.

Cuando utilice los desencadenantes de forma adecuada, debe prestar atención a los siguientes puntos:

  1. Utilice activadores sólo cuando sea necesario: al diseñar su base de datos, debe utilizar activadores sólo cuando sea necesario para evitar una complejidad excesiva y problemas de rendimiento.
  2. Manténgalo simple: intente mantener la lógica de activación simple y fácil de mantener.
  3. Pruebas y depuración: antes de utilizar activadores en un entorno de producción, se deben probar y depurar minuciosamente para garantizar su corrección y estabilidad.
  4. Seguridad: se deben considerar cuestiones de seguridad al utilizar activadores, como el uso de medidas de seguridad adecuadas para evitar que los piratas informáticos utilicen activadores para atacar la base de datos.

En resumen, el uso de activadores puede mejorar la integridad de los datos, automatizar las operaciones y mejorar el rendimiento de la base de datos, pero también es necesario prestar atención a los problemas de mantenimiento y rendimiento, así como a los problemas de seguridad.

 

Supongo que te gusta

Origin blog.csdn.net/wqzbxh/article/details/130261742
Recomendado
Clasificación