変更を監視するために、mysqlのテーブルにある種のリスナーをアタッチする方法はありますか?これを検索しようとしましたが、何も見つかりませんでした。ライブアップデートでUIを作成するためにこれを実行したいと思います。
show table status like 'tablename'
テーブルが最後に更新された日時に関する詳細が表示されます。
また、テーブルにインクリメントする主キー(auto_increment、timestampなど)がある場合、HANDLERインターフェイスは、テーブルに挿入された新しい行を追跡するのに役立ちます。新しいデータが到着するまでブロックします。
http://dev.mysql.com/doc/refman/5.0/en/handler.html
他の回答で述べたように、テーブルにトリガーを追加するのがおそらく最も柔軟なソリューションです。トリガーは変更を記録する監査テーブルを更新し、アプリは監査テーブルをポーリングして変更を反映することができます。
これを実現する方法はいくつかありますが、データベースよりもアプリコードでこれを行う方がよいと思います。
DBでこれを実行したい場合は、MySQLプロキシとMySQLトリガーの2つのオプションがあります。 MySQLトリガーがSQLの実行以外のことを実行できるかどうかはわかりませんが、それで十分である可能性があります。それらを使用して「更新」テーブルを作成し、定期的にポーリングできます。それをしたくない場合は、LuaでMySQLプロキシスクリプトを記述して必要なことを実行できますが、それははるかに難しいでしょう。
トリガーを扱うMySQLマニュアル: http://dev.mysql.com/doc/refman/5.0/en/triggers.html
MySQLプロキシの概要: http://dev.mysql.com/tech-resources/articles/proxy-gettingstarted.html
テーブルのtimestamp_inserted列は役に立ちますか?
新しい列timestamp_insertedがデフォルトでNOW()に設定されている場合、それを追加しても、コードの変更はそれほど深刻ではない可能性があります。 MySQLでは、INSERT時にデフォルトの列を指定する必要はないと思います。
Andrewが言及したトリガーを使用すると、更新や削除など、より多くのイベントを処理できます。
C++を知っている場合は、MySQL ReplicationListenerライブラリを使用してChangeData Captureを実行できます。 https://launchpad.net/mysql-replication-listener