简单示例:
ID NAME
-----------
1 Test
2 Test1
我将Test1
更新为Test3
。
现在的结果是:
ID NAME
----------
1 Test
2 Test3
更新字段NAME
后,我想要指定字段的上一个值Test1
。是否有可用的预定义功能?
答案 0 :(得分:3)
如果您想永久访问以前的值,可以选择将“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$$
答案 1 :(得分:0)
不在sql中,如果您使用其他语言(如PHP)进行更新,则可以存储值然后更新,这样您仍然可以使用旧值。但正如有人在评论中提到的那样,一旦提交数据就会丢失。
答案 2 :(得分:0)
我认为mysql没有这样的功能。
查看mysql的事务并尝试在事务的COMMIT
之前获取值
语法:
BEGIN TRANSACTION
...
END
答案 3 :(得分:0)
一个混乱的答案包括添加名为LAST_NAME或类似的列:
UPDATE TABLE SET LAST_NAME=NAME,NAME = 'New Name' WHERE ID = 1