mysql のトリガ

mysql のトリガ

tb1、tb2と2つのテーブルがあります。

tb1...mysql のトリガについて。

tb1、tb2と2つのテーブルがあります。

tb1のテーブルの情報が更新されたら 「1」というフィールドの数字の合計をtb2の「sum1」というようにフィールドに書き込みたいのです。

tb1は、id(int) ,syubetsu(text),1(int),2(int)3(int),4(int),5(int) tb2は、id(int) ,syubetsu(text),sum1(int),sum2(int),sum3(int),sum4(int),sum5(int) です。


※1,tb1の1~5のフィールドにはいろいろな数字が入ってる。


tb1の更新をきっかけに、tb2にそれぞれの合計を書き込むには、どのように記述すればいいのでしょうか?
※2、syubetu のフィールドには、A B C D E の5文字が入っています。

その文字ごとにグループ化して、合計を書き込むにはどのように記述すればいいのか?

以上2つの質問ですが、よろしく御願いします。

tb1の更新とは update のみです。

レコードはあらかじめ登録されており、その内容が変更されるだけです。

その変更時に、tb1全体のそれぞれのフィールドの合計 と A~Eのグループごとの合計をtb2に書き込みたいのです。


tb2はあらかじめレコードを登録しております。


※ やりたいことは、全体の合計と、グループごとの合計を取得したいということです。

 

 


取りあえず、「やりたいこと」をトリガで別表に反映するのでなく、検索結果として得られるselect文を提示しておきます。


列名は、「1」などの数字でなく、「num1」といった英字で始まる名称に置き換えています。

 


select syubetsu,sum(num1),sum(num2) from tb1
group by syubetsu with rollup


=====回答=====
MySQLのバージョン

トリガで実装するには、あまり向いていないテーブル設計と感じますが、トリガを使う目的は何なのでしょうか?

>tb1のテーブルの情報が更新されたら

更新とは?
insert、update、deleteが、すべてあり得るのですか?


>※2、syubetu のフィールドには、A B C D E の5文字が入っています。

その文字ごとにグループ化して、合計を書き込むには
>どのように記述すればいいのでしょうか?

tb2は、行数が5個しかないというこ
group byとsum関数の組み合わで、実装できる