MySQLに関する質問です。


以下のテーブルは同一データベース内にあります。

テーブル名:table_a
フィールド:id
grade_a

テーブル名:table_b
フィールド:id
grade_b

平たく言えば、grade_aとgrade_bを常に同期させたいのです。


何らかの操作によって、
table_aのidが1のレコードのgrade_aの値が変化したとします。
その場合に、
table_bのidが1のレコードのgrade_bの値も同じように変化するようにしたいです。
平たく言えば「table_aが変わる → table_bも変わる」です。


・table_bの値を何らかの操作で変化させることはありません。変わるのはtable_aのみです。
・お互いのテーブルのidは全く同じもので、table_aに3があればtable_bに3は必ずあります。

文章で書くと何やらわかりづらくなりましたが、もし可能ならば教えてください。よろしくお願いします。

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2007/03/17 06:32:22
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:b-wind No.1

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

ポイント27pt

【MySQLウォッチ】第16回 MySQL 5.0ベータ版リリース,新機能トリガーとビューを試す:ITpro

MySQL 5.0 以降であればトリガーが使えます。


それ以前のバージョンでは table_a の変更時に table_b も変更する以外の手はありません。

id:tokyosmash

>それ以前のバージョンでは table_a の変更時に table_b も変更する以外の手はありません。

おとなしくこれでいこうと思います。

2007/03/16 01:06:18

その他の回答2件)

id:b-wind No.1

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

ポイント27pt

【MySQLウォッチ】第16回 MySQL 5.0ベータ版リリース,新機能トリガーとビューを試す:ITpro

MySQL 5.0 以降であればトリガーが使えます。


それ以前のバージョンでは table_a の変更時に table_b も変更する以外の手はありません。

id:tokyosmash

>それ以前のバージョンでは table_a の変更時に table_b も変更する以外の手はありません。

おとなしくこれでいこうと思います。

2007/03/16 01:06:18
id:chuken_kenkou No.2

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

ポイント27pt

MySQLの質問をする場合は、バージョンを書いてください。

バージョン5.0以降であれば、トリガを使用する方法があります。

http://dev.mysql.com/doc/refman/5.0/en/triggers.html

id:tokyosmash

すみません配慮がたりませんでした。

バージョンは4.*でした!

2007/03/16 01:06:44
id:mshron No.3

回答回数7ベストアンサー獲得回数0

ポイント26pt

外部キー制約が可能なら、on update cascadeなどはいかがでしょう

http://dev.mysql.com/doc/refman/4.1/ja/innodb-foreign-key-constr...

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

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

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

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

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