MySQL 列值修订历史

标签 mysql database

我在 MySQL 数据库中有一个列,我想存储其值的所有修订以及更改日期。

MySQL 中是否有任何内置机制允许我执行此操作,或者是否有任何推荐的方法来解决此问题?

最佳答案

MySQL 中没有内置这样的功能。您需要自己实现这一点,具体取决于您需要存储的内容。您可以在持久性逻辑中引入一个层,将所需的日志数据插入到单独的历史表中。

根据您所做的更改量,请务必考虑清理策略,因为随着时间的推移,这些历史记录可能会变得巨大。

如果您正在讨论需要此类历史记录的多个表,则可以根据预期的更改总量,使用单个历史记录表以及标识更改所属表的附加列,或者每个数据表都有一个单独的历史表。

此外,请查看可用的不同存储引擎。有一个压缩的Archive Storage Engine ,一旦插入数据就不允许修改数据,并且还有其他限制,但它的存储要求比 e 低。 G。 InnoDB 的。它是为存档目的而设计的,而不是为了临时查询,因此它可能适合也可能不适合您。

关于MySQL 列值修订历史,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10444821/

相关文章:

mysql - 如何合并两个具有相同数据但具有不同 PK 且没有重复字段的数据库?

database - APEX_UTIL.GET_SINCE 关闭 6 分钟

mysql - 如何在创建表中使用约束或列级别内的选择

php - Laravel 访问被拒绝,但我可以使用 phpmyadmin 或普通 php 查询进行连接

php - 使用 CSS 为数据库查询集数据中的某些表行设置样式

java - 玩2框架多对多关系更好的设计

mysql - 关于 MySQL 表上的垃圾收集/自动删除的问题

database - 在不复制输出的情况下从多个表创建 View

php - 问题插入行 MySQL,没有 MySQL 错误

本案例的 MySQL 数据库