Actualizar la Lógica del Disparador
Sus requisitos pueden cambiar con el tiempo. Por ejemplo, podría querer registrar más detalles. En este paso, actualizará el disparador para que también registre el precio del nuevo producto.
En MySQL, no puede modificar directamente un disparador. Primero debe eliminar el disparador existente y luego crear uno nuevo con la lógica actualizada.
Cambie a su base de datos.
USE mydatabase;
Primero, elimine el disparador existente. La cláusula IF EXISTS evita un error si el disparador ya ha sido eliminado.
DROP TRIGGER IF EXISTS products_after_insert;
Ahora, recree el disparador con la lógica actualizada. Esta nueva versión incluirá el precio del producto en la action_description.
DELIMITER //
CREATE TRIGGER products_after_insert
AFTER INSERT ON products
FOR EACH ROW
BEGIN
INSERT INTO product_logs (product_id, action_description)
VALUES (NEW.id, CONCAT('New product added: ', NEW.name, ' with price ', NEW.price));
END//
DELIMITER ;
Para probar el disparador actualizado, inserte otro producto.
INSERT INTO products (name, price) VALUES ('Mouse', 25.00);
Ahora, consulte la tabla product_logs para ver todas las entradas del registro.
SELECT * FROM product_logs;
La salida ahora debería mostrar dos entradas de registro. La segunda entrada, para el 'Mouse', debería incluir el precio en su descripción, confirmando que su disparador actualizado está funcionando.
+--------+------------+----------------------------------------------+---------------------+
| log_id | product_id | action_description | log_time |
+--------+------------+----------------------------------------------+---------------------+
| 1 | 1 | New product added: Laptop | 2024-05-27 10:30:00 |
| 2 | 2 | New product added: Mouse with price 25.00 | 2024-05-27 10:35:00 |
+--------+------------+----------------------------------------------+---------------------+
2 rows in set (0.00 sec)
Ha actualizado el disparador con éxito.