mysqlでデータに変更があった場合、検知したいと思っています。

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

回答の条件
  • URL必須
  • 1人1回まで
  • 登録:
  • 終了:2008/11/15 18:09:54
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:b-wind No.1

回答回数3344ベストアンサー獲得回数440

ポイント27pt

案1:トリガーを使う

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


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

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

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

id:kichitaka

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

2008/11/15 18:08:49

その他の回答2件)

id:b-wind No.1

回答回数3344ベストアンサー獲得回数440ここでベストアンサー

ポイント27pt

案1:トリガーを使う

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


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

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

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

id:kichitaka

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

2008/11/15 18:08:49
id:YOSIZO No.2

回答回数64ベストアンサー獲得回数1

ポイント27pt

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

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

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

id:kichitaka

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

2008/11/15 18:09:15
id:chuken_kenkou No.3

回答回数722ベストアンサー獲得回数54

ポイント26pt

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 リファレンスマニュアル

id:kichitaka

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

2008/11/15 18:09:41

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません