Un desencadenante es un procedimiento que se dispara automáticamente cuando se realiza cualquier modificación en una tabla de base de datos. No hay opción para llamar o ejecutar ningún gatillo manualmente. El objetivo principal de usar desencadenantes es mantener la integridad de las bases de datos y puede usarse con las restricciones de integridad referenciales que fuerza las reglas de integridad. En un DBMS, cuando se produce cualquier evento de inserción, actualización y eliminación, luego el procedimiento de activación asociado con la tabla efectuada se ejecutará automáticamente y realiza las acciones requeridas. Los diferentes tipos de desencadenantes son compatibles con la base de datos. Los desencadenantes se clasifican principalmente de dos maneras. Uno es antes del gatillo y otro es después del gatillo. Antes de que se llamen a los disparadores antes de que se ejecute cualquier evento en la tabla y después de que se llamen a los disparadores después de ejecutar cualquier evento en la tabla. En este tutorial se muestra cómo instala MariadB y aplica diferentes tipos de desencadenantes en el servidor de base de datos Mariadb en Ubuntu.
Instalación de mariadb:
Ejecute el comando a continuación para actualizar el sistema e instalar el servidor y el cliente mariadb.
# sudo apt-get actualización && sudo apt-get install mariadb-server mariadb-client
Tipo 'y ' y presione ENTER para completar el proceso de instalación.
Ejecute el siguiente comando para iniciar el servidor mariadb.
# sudo systemctl inicio mariadb
Verifique que el servidor funcione correctamente o no. La salida del siguiente comando mostrará el estado de detalles del servidor. La salida indica que Mariadb 10.1.30 la verión se está ejecutando.
# SUDO SYSTEMCTL ESTADO MARIADB
Ejecute el siguiente comando si desea detener el servidor. No ejecute este comando ahora.
# sudo systemctl stop mariadb
Configurar la base de datos y las tablas
Debe crear una base de datos y dos o más tablas para verificar cómo funcionan los desencadenantes. En primer lugar, ejecute el cliente MySQL para configurar la base de datos. Solicitará contraseña root para acceder al servidor de base de datos.
# sudo mysql -u root
Crear una base de datos nombrada almacenar.
> Crear tienda de base de datos;Seleccione esta nueva base de datos:
> Use la tienda;Crear tres tablas en almacenar base de datos para aplicar acciones de activación en estos. Aquí, productos, stock y stock_add Se crean tablas.
Crear productos de mesaAhora, inserte algunos datos en estas tres tablas.
Crear después del disparador
Puede crear después del activador para realizar cualquier acción automáticamente después de insertar, actualizar o eliminar registros de una tabla en particular. Aquí, productos y cepo Las tablas se seleccionan para crear después del disparador de eliminación. Los datos de la tabla de stock dependen de los datos de la tabla de productos. Entonces, si se elimina algún registro de la tabla de productos, los registros relacionados de la tabla de acciones deben eliminarse. Cree el siguiente procedimiento de activación para eliminar cualquier registro relacionado de la tabla de existencias automáticamente cuando se elimina cualquier registro de la tabla de productos. En este desencadenante, la identificación eliminada se reconoce por viejo.identificación.
Delimitador //
Después de que se cree el gatillo para la tabla de productos. Ahora tienes que probar ese disparador funciona correctamente o no. Ejecute la siguiente consulta para eliminar un registro de los productos donde identificación es 101 y verifique los datos de las tablas de productos y acciones. Después de ejecutar la consulta, encontrará que el registro relacionado de la tabla de existencias se elimina después del activador. No se encontrará un registro para el valor de identificación, 101, en ambas tablas.
Crea antes de los disparadores
Antes de que el disparador se use para tomar cualquier acción antes de insertar, actualizar o eliminar cualquier o más registros de una tabla particular. Aquí, cepo y stocks_add La tabla se usa para crear antes del activador. El valor de la tabla Current_stock of Stocks depende del valor de la cantidad de la tabla de stocks_add. Si actualiza cualquier valor de cantidad de la tabla stocks_add, entonces la tabla actual_stock de las existencias debe actualizarse. Entonces, si cualquier valor de cantidad existente de la tabla de stocks_add disminuye, entonces se disminuirá la actualidad de las existencias y si el valor de la cantidad aumenta la actual_stock. Crear antes de actualizar el activador para la tabla stocks_add. En este desencadenante, el valor de la cantidad cambiada se calcula restando la cantidad anterior de la nueva cantidad.
Delimitador //Antes de actualizar, verifique los valores actuales de las acciones y las tablas de stocks_add.
> Seleccionar * de las acciones;
Supongamos que debe actualizar el valor de cantidad de la tabla de stocks_add donde ID del Producto es 103 y fecha de entrada es 2018-01-01 cual es 30 ahora. Si desea actualizar el valor por 75 Luego ejecute la siguiente consulta de actualización y revise ambas tablas nuevamente. La mayor cantidad es, 75-30 = 45. Entonces, después de la actualización, el disparador se disparará y la tabla de actualidad de Stocks se establecerá como, 300+45 = 345.
El uso de dos tipos de desencadenantes se muestra en este tutorial. De manera similar, puede crear otros tipos de activación de antes y después de las tablas de su base de datos en función de sus requisitos.