栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

使用MySQL触发器将所有表更改记录到辅助表

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用MySQL触发器将所有表更改记录到辅助表

插入语法为

INSERT INTO table (columns_list) VALUES (values_list)

因此您的插入内容应如下所示(我不是MySQL专家,但您可以适合查询):

INSERT INTO data_tracking (`data_id` , `field` , `old_value` , `new_value` , `modified` ) VALUES (NEW.data_id, 'field1', OLD.field, NEW.field, CURRENT_DATETIME());

并重复它以对field2和field3进行修改

我认为这将是完整的触发器,请尝试:

DELIMITER $$DROP TRIGGER `update_data `$$CREATE TRIGGER `update_data` AFTER UPDATE on `data_table`FOR EACH ROWBEGIN    IF (NEW.field1 != OLD.field1) THEN        INSERT INTO data_tracking  (`data_id` , `field` , `old_value` , `new_value` , `modified` )         VALUES  (NEW.data_id, "field1", OLD.field1, NEW.field1, NOW());    END IF;    IF (NEW.field2 != OLD.field2) THEN        INSERT INTO data_tracking  (`data_id` , `field` , `old_value` , `new_value` , `modified` )         VALUES  (NEW.data_id, "field2", OLD.field2, NEW.field2, NOW());    END IF;    IF (NEW.field3 != OLD.field3) THEN        INSERT INTO data_tracking  (`data_id` , `field` , `old_value` , `new_value` , `modified` )         VALUES  (NEW.data_id, "field3", OLD.field3, NEW.field3, NOW());    END IF;END$$DELIMITER ;


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/432769.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号