3.通过触发器记录 tb_user 表的数据变更日志,将变更日志插入到日志表user_logs中, 包含增加,修改 , 删除 ; 表结构准备: -- 准备工作 : 日志表 user_logs
时间: 2024-02-13 21:06:03 浏览: 60
利用SQL Server触发器实现表的历史修改痕迹记录
以下是一个示例触发器代码,可以记录`tb_user`表的数据变更日志并插入到`user_logs`日志表中:
```
CREATE TRIGGER `tb_user_trigger` AFTER INSERT, UPDATE, DELETE ON `tb_user` FOR EACH ROW
BEGIN
DECLARE operation CHAR(6);
DECLARE log_message VARCHAR(100);
IF OLD.id IS NULL THEN
SET operation = 'INSERT';
ELSEIF NEW.id IS NULL THEN
SET operation = 'DELETE';
ELSE
SET operation = 'UPDATE';
END IF;
SET log_message = CONCAT(operation, ' user: ', NEW.id, ' - ', NEW.name);
INSERT INTO user_logs (log_message) VALUES (log_message);
END;
```
这个触发器会在每次向`tb_user`表中插入、更新或删除数据之后执行。它会根据操作类型计算出对应的操作名称,并将操作名称和用户信息拼接成日志信息。最后,将日志信息插入到`user_logs`表中。这样,每次对`tb_user`表进行数据变更操作时,都会自动记录日志信息并保存到`user_logs`表中。
阅读全文