3

mysql当使用 PHP对我的表进行一些更改时,我想在屏幕上触发警报。

目前,我有许多不同结构的表(Purchase Order、Sales Order、Users 等),我的目的是制作一个实时应用程序,但问题是我已经编写了 90% 的应用程序。

我有一个名称为activity 它包含的表:

id, table, action, dateTime, user

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

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

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

请注意,我已经编写了应用程序的许多部分,实现这一目标的最可能方法是什么?

4

1 回答 1

1

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

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')
于 2012-12-21T04:12:13.073 回答