MYSQL查询即使更新后也能获取旧记录

标签 mysql

我想知道我的 MYSQL 数据库中之前更新的值。

si.no   cus_name     date      status
  1      JOHN     2012-05-02   active 
<小时/>
  1      PAUL     2012-05-02   active ( not a new record just an 1st-update )

  1      JOSE     2012-05-02   active  ( not a new record just an 2nd-update )

现在,当我使用 "PAUL" 更新名称时,我想获取 cus_name 值 "JOHN" ,与 "JOSE" 相同应将值指定为 "PAUL"

请向我提出同样的查询。

非常感谢您的宝贵时间。

最佳答案

如果您想访问以前的值,您有两个选择。

  1. 使用版本号和时间戳列设计表,以便您始终可以获取最新版本以及该行的任何先前版本。您必须将更新操作更改为插入,可能在您的应用程序代码中或使用触发器。如果表频繁更新,可能会导致表变得非常大。
  2. 使用第二个表来存储更新行的先前版本。该表将需要版本号(可能还需要更新时间戳)。这种方法的优点是,具有“当前”数据的主表不会随着更新的累积而经历无限制的增长。这也可以通过触发器或在您的应用程序中完成。

您选择哪一个将取决于更新频率以及访问“旧”记录的频率。

关于MYSQL查询即使更新后也能获取旧记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12633403/

相关文章:

mysql - mysql 数据库上的 While 循环

php - 如何按日期列出记录?

c# - 如何在 asp.net 中查找 SQL 数据库中具有某个 bool 列值为 true 的所有行?

php - 从上传的 excel 文件中检索值并将其存储到数据库中

mysql使用外键显示来自两个表的数据

mysql - 带有左连接子查询的sql

mysql - 如何按时间范围对员工进行分组?

MySQL - 连接所有子记录都有值的记录

Mysql自然顺序

php - 如何在同一台服务器上跨多个域维护 PHP session ?