公式アカウントからの投稿が始まります

現在MySQLを学習しているんですが、ちょっとわからない問題が出てきまして質問させていただきます。
トリガーの問題なんですが、

各種テーブルに対して更新処理(追加、削除、更新)した場合、その処理を実施した時間、ユーザー名、テーブル名、処理内容を別のテーブルに自動保存する

って内容なんですが、ここのテーブル名、処理内容の自動保存の構文がびっくりするくらい分かりません。。。。。

結構調べたのですが、なかなかヒットしないので質問させて下さい(涙)

お願い致します(涙)

A 回答 (1件)

とりあえずトリガーつかってみてください



http://dev.mysql.com/doc/refman/5.1/ja/create-tr …

基本的にはテーブルごとに、追加・削除・更新のトリガーを
それぞれ作っておくとよいでしょう。

ちなみに微妙なのが「ユーザー名」の扱いですね
通常、mysqlのアクセスは管理者、編集者、読者程度のユーザーを設定し
それに対して、webアプリなどでアクセスして更新する際に
代理で作業をさせると思います

したがって、質問者さんがいうユーザーが、実質上のユーザー(作業者)であるなら
そのユーザー名を渡してあげないといけないし、mysql上のユーザー(権限者)であるなら
それを取得する必要があります。
    • good
    • 0
この回答へのお礼

ありがとうございます!!

トリガーを複数作らないといけないんですね。。。。

ユーザーは作業者になるので、user()で指定して複数のトリガーを作ってみたらうまくいきました!
てっきり一つのSQL文でできる物だと勘違いしていました(涙)

ありがとうございました!!

お礼日時:2014/08/07 15:45

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!