Los datos expuestos en este blog, son solo de índole informativo. Por favor realiza siempre una copia de seguridad antes de realizar cualquier cambio en tu proyecto.
MariaDB: desencadenar después de la actualización
Este tutorial de MariaDB explica cómo Crear un activador posterior a la actualización En MariaDB, con sintaxis y ejemplos.
describir
El disparador DESPUÉS DE ACTUALIZAR significa que MariaDB disparará este disparador después de una operación de ACTUALIZAR.
sintaxis
La sintaxis para crear un activador DESPUÉS DE LA ACTUALIZACIÓN en MariaDB es:
CREATE TRIGGER trigger_name AFTER UPDATE ON table_name FOR EACH ROW BEGIN -- variable declarations -- trigger code END;
parámetro o parámetro
trigger_name El nombre del activador que se va a crear. DESPUÉS DE LA ACTUALIZACIÓN significa que el activador se activa después de la operación de ACTUALIZACIÓN. table_name El nombre de la tabla en la que se creó el disparador.
límite
- No puede crear disparadores DESPUÉS en las vistas.
- No puede actualizar nuevos valores.
- No puede actualizar los valores antiguos.
notas
- Consulte también Cómo crear disparadores DESPUÉS DE ELIMINAR, DESPUÉS DE INSERTAR, ANTES DE ELIMINAR, ANTES DE INSERTAR y ANTES DE ACTUALIZAR.
- Consulte también Cómo eliminar disparadores.
ejemplo
Veamos un ejemplo de cómo crear un activador DESPUÉS DE ACTUALIZAR usando la declaración CREATE TRIGGER en MariaDB.
Si creas una tabla como esta:
CREATE TABLE contacts ( contact_id INT(11) NOT NULL AUTO_INCREMENT, last_name VARCHAR(30) NOT NULL, first_name VARCHAR(25), birthday DATE, created_date DATE, created_by VARCHAR(30), CONSTRAINT contacts_pk PRIMARY KEY (contact_id) );
Entonces podemos usar la declaración CREATE TRIGGER para crear un disparador DESPUÉS DE ACTUALIZAR de la siguiente manera:
DELIMITER // CREATE TRIGGER contacts_after_update AFTER UPDATE ON contacts FOR EACH ROW BEGIN DECLARE vUser varchar(50); -- Find username of person performing the INSERT into table SELECT USER() INTO vUser; -- Insert record into audit table INSERT INTO contacts_audit ( contact_id, updated_date, updated_by) VALUES ( NEW.contact_id, SYSDATE(), vUser ); END; // DELIMITER ;