简单的例子:
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$$
一个混乱的答案将包括添加一个名为 LAST_NAME 或类似名称的列:
UPDATE TABLE SET LAST_NAME=NAME,NAME = 'New Name' WHERE ID = 1
不在 sql 中,如果您使用其他语言(例如 PHP)进行更新,您可以存储值然后更新,这样您仍然可以使用旧值。但正如有人在评论中提到的那样,一旦提交,数据就会丢失。
我不认为mysql有这样的功能。
查看 mysql 的事务并尝试在事务之前获取COMMIT
值
句法:
BEGIN TRANSACTION
...
END