簡単な例:
ID NAME
-----------
1 Test
2 Test1
にアップデートTest1
しTest3
ます。
結果は次のとおりです。
ID NAME
----------
1 Test
2 Test3
フィールドを更新した後、指定されたフィールドNAME
の以前の値が必要ですTest1
。あらかじめ定義された機能はありますか?
以前の値に永続的にアクセスしたい場合は、同じテーブルに行「oldName」を追加してデータベースに保存するオプションがあります。トリガーを使用して、名前が変更されるたびに名前を体系的にバックアップすることもできます。
DELIMITER $$
CREATE TRIGGER `backup_name` BEFORE UPDATE ON `table1`
FOR EACH ROW BEGIN
IF NEW.name <> OLD.name THEN
SET NEW.oldName = OLD.name;
END IF
END$$
SQL ではありません。PHP などの他の言語を使用して更新する場合は、値を保存してから更新することができます。そうすれば、古い値をまだ手元に置くことができます。しかし、誰かがコメントで述べたように、コミットするとデータは失われます。
mysqlにはそのような機能はないと思います。
mysql のトランザクションを見て、トランザクションの前に値を取得してみてCOMMIT
ください
構文:
BEGIN TRANSACTION
...
END
厄介な答えには、LAST_NAME などの列を追加することが含まれます。
UPDATE TABLE SET LAST_NAME=NAME,NAME = 'New Name' WHERE ID = 1