Atualizar a Lógica do Trigger
Seus requisitos podem mudar com o tempo. Por exemplo, você pode querer registrar mais detalhes. Neste passo, você atualizará o trigger para também registrar o preço do novo produto.
No MySQL, você não pode modificar um trigger diretamente. Você deve primeiro remover o trigger existente e depois criar um novo com a lógica atualizada.
Mude para o seu banco de dados.
USE mydatabase;
Primeiro, remova o trigger existente. A cláusula IF EXISTS evita um erro se o trigger já tiver sido removido.
DROP TRIGGER IF EXISTS products_after_insert;
Agora, recrie o trigger com a lógica atualizada. Esta nova versão incluirá o preço do produto na 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 testar o trigger atualizado, insira outro produto.
INSERT INTO products (name, price) VALUES ('Mouse', 25.00);
Agora, consulte a tabela product_logs para ver todas as entradas de log.
SELECT * FROM product_logs;
A saída agora deve mostrar duas entradas de log. A segunda entrada, para o 'Mouse', deve incluir o preço em sua descrição, confirmando que seu trigger atualizado 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)
Você atualizou o trigger com sucesso.