mysql - 触发表更改

时间:2012-12-20 09:45:33

标签: mysql database triggers

我希望在使用PHP对mysql表进行一些更改时在屏幕上触发警报。

目前,我有许多具有不同结构的表(采购订单,销售订单,用户等),我的目的是制作实时应用程序,但问题是我已经编写了90%的应用程序。 / p>

我有一张名为activity的表格 它包含:

id, table, action, dateTime, user

当对Purchase Order表进行一些更改时,我需要记录

(0,'TABLE A','INSERT','12/12/12','John')

这样我就可以展示JOHN created a new Purchase Order

请注意,我已经写了很多应用程序的部分,最可能的方法是什么?

1 个答案:

答案 0 :(得分:1)

如果您的问题是如何记录 activity 表中的更改,那么您可以在每个要监控的表(订单,销售,用户等)上创建触发器,如下所示:

CREATE TRIGGER `tg_orders_insert` AFTER INSERT ON orders
    FOR EACH ROW INSERT INTO `activity` (`id`, `table`, `action`, `date_time`, `user`) VALUES (NEW.id, 'orders', 'insert', NOW(), 'user1')  

CREATE TRIGGER `tg_orders_update` AFTER UPDATE ON orders
    FOR EACH ROW INSERT INTO `activity` (`id`, `table`, `action`, `date_time`, `user`) VALUES (NEW.id, 'orders', 'update', NOW(), 'user1')  

CREATE TRIGGER `tg_orders_delete` BEFORE DELETE ON orders
    FOR EACH ROW INSERT INTO `activity` (`id`, `table`, `action`, `date_time`, `user`) VALUES (OLD.id, 'orders', 'delete', NOW(), 'user1')