3

mysqlPHPを使用してテーブルに変更が加えられたときに、画面上でアラートをトリガーしたいと思います。

現在、構造(発注書、販売注文書、ユーザーなど)の異なるテーブルがたくさんあり、リアルタイムのアプリケーションを作成するつもりですが、問題は、アプリケーションの90%をすでに作成していることです。

ItContainsという名前のテーブルがあり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 に答える