2011-08-04 9 views
3

は、実際に私は、このページでは、別の質問に読み、次の文を使用します。mysqlテーブルが更新されているかどうかはどのように知ることができますか?

SELECT UPDATE_TIME 
FROM information_schema.tables 
WHERE TABLE_SCHEMA = 'dbname' 
    AND TABLE_NAME = 'tabname' 

しかし、私は、MySQLサーバが私に信号ときを送信する場合、それはプロセスの多くの時間を使用していること、それがより簡単になると思いますテーブルが更新され、プログラムがその信号を検出するまで待つことができます。

これは可能ですか?私はCでプログラミングしています。

ありがとうございました。

+1

信号で行うことが多くを持っています。タグのためにタグを付けないでください。 –

答えて

4

C(++)でプログラムされたUDFと組み合わされたトリガーを使用して通知を行うことができます。
ここにダミーコードがあります。

DELIMITER $$ 

CREATE TRIGGER ai_table1_each AFTER INSERT ON table1 FOR EACH ROW 
BEGIN 
    CALL ChangeNotification('table1', 'insert', NEW.id); 
END $$ 

DELIMITER ; 

挿入/削除と更新のトリガーが必要です。テーブルごとに3倍。
実際の表ではなく実際の表であるため、システム表IIRCにトリガーを追加することはできません。

通知を行うchangenotificationという名前のC(++)でUDFを記述する必要があります。

リンク:
http://dev.mysql.com/doc/refman/5.0/en/adding-udf.html
http://www.mysqludf.org/
http://dev.mysql.com/doc/refman/5.0/en/triggers.html
http://dev.mysql.com/doc/refman/5.0/en/getting-unique-id.html

+0

これは面白いと思う、私はそれがトリックを作ると思う、ありがとう。 私が作成したテーブルでシステムテーブル(ビュー)にトリガを使用しますが、アドバイスをいただきありがとうございます。 –

関連する問題