2008年2月22日

[mysql 14395] Re: データ更新の履歴


追記です。

DELETE前のデータなら、下記の例と同様、DELETEトリガでOLDで列名を参照してください。


> Date: Fri, 22 Feb 2008 17:47:39 +0900
> From: ken_ken_1962@xxxxx

> Subject: [mysql 14394] Re: データ更新の履歴
> To: ml@xxxxx
>
>
> 更新前のデータを履歴に残したいのだから、「BEFORE INSERT ON t」でなく、「BEFORE UPDATE ON t」になります。
> 更新前データは、「OLD.列名」で参照でき、更新後データは、「NEW.列名」で参照できます。
>
>
> -- 表定義例
> create table tbl1
> (clm1 int primary key,
> clm2 int,
> clm3 varchar(10));
> create table log_tbl1
> (clm1 int,
> clm2 int,
> clm3 varchar(10),
> upd_user varchar(30),
> tmst timestamp);
>
> -- トリガ定義例
> delimiter // -- 終端記号を変更
> create trigger upd_tbl1 before update on tbl1
> for each row
> begin
> insert into log_tbl1(clm1,clm2,clm3,upd_user)
> values(old.clm1,old.clm2,old.clm3,current_user);
> end
> ;
> //
> delimiter ; -- 終端記号を元に戻す
>
>
> -- テスト用データ格納例
> insert into tbl1 values(1,0,'a');
> insert into tbl1 values(2,0,'b');
> insert into tbl1 values(3,0,'c');
> insert into tbl1 values(4,0,'d');
> insert into tbl1 values(5,0,'e');
>
> -- 更新してみる
> update tbl1
> set clm2=clm2+1,clm3=concat(clm3,'x')
> where clm1=3;
>
> -- トリガの結果確認
> select * from log_tbl1;
>
>
>> Date: Fri, 22 Feb 2008 17:27:16 +0900
>> From: alex_backspin@xxxxx
>> Subject: [mysql 14393] Re: データ更新の履歴
>> To: ml@xxxxx
>>
>> 近藤さま、
>>
>> 解答ありがとうございます。
>>
>> バージョンは5.0.22で、ubuntu 6.06.1 LTS にて使っています。
>>
>> トリガーを使用するとき、
>>
>> mysql> CREATE TRIGGER t_bi
>> -> BEFORE INSERT ON t
>> -> FOR EACH ROW
>> -> INSERT INTO bk_table value ・・・?;
>>
>> 更新前のデータを別のテーブルにインサートするには、上記のような形となるの
>> でしょうか?
>> このとき、INSERT構文をどのように書けばよいのかご教授頂けませんでしょうか?
>>
>>
>> nobu wrote:
>>> 近藤です。
>>>
>>> MySQLのバージョンはいくつでしょうか?
>>> MySQLに限ったことではありませんが、そのような要件の際に私はトリガー
>>> を使用しています。MySQL5.0以上であればトリガーが使えたかと思います。
>>>
>>> 以上
>>>
>>>
>>>
>>> Alex さんは書きました:
>>>> こんにちは、ALEXです。
>>>>
>>>> MySQLの任意のテーブル内のでデータを更新したとき、更新前のデータを自動的
>>>> にどこかに保管するような仕組みはないものでしょうか。
>>>> データが変更されたときの履歴を取りたいのが目的です。
>>>> よろしくお願い致します。
>>>>
>>>>
>>>
>>>
>>>
>>
>
> _________________________________________________________________
> 「脳内メーカー」の次は「鞄の中身メーカー」? Live Search で検索!
> http://search.msn.co.jp/results.aspx?q=%E9%9E%84%E3%81%AE%E4%B8%AD%E8%BA%AB%E3%83%A1%E3%83%BC%E3%82%AB%E3%83%BC&FORM=MGCEAA
>

_________________________________________________________________
栄養不足?MSN相談箱で「サプリメント」について知ろう!
http://questionbox.msn.co.jp/search.php3?start=0&pt=0&qt=all&k=pbWl16XqpeGl86XI

投稿者 xml-rpc : 2008年2月22日 17:53
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/70179
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。