0

简单的例子:

ID     NAME  
-----------   
1      Test  
2      Test1

我更新Test1Test3.

现在结果是:

ID    NAME  
----------  
1     Test  
2     Test3

更新字段后,NAME我想要Test1指定字段的上一个值。是否有任何预定义的功能可用?

4

4 回答 4

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$$
于 2012-06-26T13:46:28.553 回答
0

一个混乱的答案将包括添加一个名为 LAST_NAME 或类似名称的列:

UPDATE TABLE SET LAST_NAME=NAME,NAME = 'New Name' WHERE ID = 1
于 2012-06-26T16:40:03.120 回答
0

不在 sql 中,如果您使用其他语言(例如 PHP)进行更新,您可以存储值然后更新,这样您仍然可以使用旧值。但正如有人在评论中提到的那样,一旦提交,数据就会丢失。

于 2012-06-26T13:21:19.437 回答
0

我不认为mysql有这样的功能。

查看 mysql 的事务并尝试在事务之前获取COMMIT

句法:

BEGIN TRANSACTION
...
END
于 2012-06-26T13:21:34.243 回答