人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

mysqlでデータに変更があった場合、検知したいと思っています。
具体的には、日本語の文章を追加編集するテーブルがあり、フィールドに変更があった場合内容を英語に機械翻訳して別のDBに入れたいのです。
プログラム部分は難しくないとおもうのですが、DBに変更があった場合というトリガーがあるのか解りません。
なにか良い方法はありますか?

●質問者: kichitaka
●カテゴリ:ウェブ制作
✍キーワード:DB MySQL データ フィールド プログラム
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● b-wind
●27ポイント ベストアンサー

案1:トリガーを使う

MySQL :: MySQL 5.1 リファレンスマニュアル :: 18.1 CREATE TRIGGER 構文


案2:timestamp 型の変数を用意しておくとレコードが更新される毎に更新日時が挿入される

MySQL :: MySQL 5.1 リファレンスマニュアル :: 10.3.1.1 TIMESTAMP MySQL 4.1での性質

これを利用し、プログラムで定期的にチェックして変更を検知させる。

◎質問者からの返答

ありがとうございます。トリガー5.0から実装されているのですね。素晴らしいです。


2 ● YOSIZO
●27ポイント

自分でやった事がないので自信ないですが、mysql5.0からトリガ機能が追加されましたので、それを使って変更を検知できるのでは?

変更点を別のテーブルに追記するようにしておいて、一定時間毎にそのテーブルを読んで翻訳するようなプログラムを走らせれば良いんじゃないでしょうか。

http://dev.mysql.com/doc/refman/5.1/ja/triggers.html

◎質問者からの返答

ありがとうございます。トリガーがあれば、どうとでもプログラムが組めますね。助かりました。


3 ● chuken_kenkou
●26ポイント

MySQL 5.0以降なら、トリガーが実装されています。


MySQL :: MySQL 5.0 Reference Manual :: 12.1.10 CREATE TRIGGER Syntax

MySQL :: MySQL 5.0 Reference Manual :: 17 Stored Programs and Views


特定の表に対し、insert、update、deleteが行われた場合、そうの操作の前または後に呼び出されるストアドルーチンを定義できます。


MySQL 5.0は英文マニュアルですが、MySQL 5.1なら日本語マニュアルもあります。

MySQL :: MySQL 5.1 リファレンスマニュアル

◎質問者からの返答

ありがとうございます。トリガーつかってみようとおもいます。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ