2010-05-07 38 views
0

我知道可以在插入,更新和刪除時使用觸發器,但是select語句上的觸發器(或排序)如何。我想用一個觸發器在表B上插入數據,當它被選中時表A上存在一條記錄,這可能是可能的。是否有可能在MySQL的select語句上觸發?

在此先感謝。

回答

1

不完全是一個觸發器,但您可以:

CREATE FUNCTION myFunc(...) BEGIN INSERT INTO myTable VALUES(...) END; 

然後

SELECT myFunc(...), ... FROM otherTable WHERE id = 1; 

不是一個完美的解決方案,但。

1

在數據庫本身中是不可能的。

但是,對於數據庫(例如Sybase-不確定MySQL)有哪些監控/儀器產品可以跟蹤服務器執行的每個查詢,並且可以根據這些數據做任何事情 - 通常將查詢日誌存儲到數據倉庫中後面的分析,但他們也可以爲你插入一個表B的記錄,我猜。

2

您應該設計您的應用程序,以便僅通過某些方法進行數據庫訪問,並在這些方法中添加您所需的監視。

0

您可以編寫一個應用程序,該應用程序將監視查詢日誌並在發生選擇時執行某些操作。一個非常原始的方式來解決這個問題,雖然...