1

別のフィールドの古い値を取得するテーブルにフィールドを作成しようとしています。私のテーブルはこれに非常に似ています:

 ------------ -------------------- ------------------------ 
| id int(10) | price decimal(5,2) | price_old decimal(5,2) | 
 ----------------------------------------------------------

私が取得しようとしているのは、現在のレコードのフィールドpriceにコピーされるフィールドの値です。price_oldON UPDATE

mysqlだけでこれを達成することは可能ですか?

PS: そのセルに含まれるデータは重要ではありません。使用法は、アイテムの以前の価格を保存し、その後、それがどのように変化したかを示すことができるようにすることです。テーブル エントリの完全な履歴ではなく、最後の値のみが必要です。(これが問題になる場合、私のMySQLサーバーは5.0です)

4

2 に答える 2

1

更新ルールでトリガーを使用します。price_old に price の値を設定

CREATE TRIGGER `update_price_old`  
    BEFORE UPDATE ON `table_name` FOR EACH ROW  
    BEGIN 
    UPDATE `table_name` SET price_old = OLD.price where OLD.id = id;
    END 
于 2013-08-06T16:00:03.787 に答える