gpt4 book ai didi

php - 获取 MySQL 数据库差异

转载 作者:可可西里 更新时间:2023-11-01 08:01:04 25 4
gpt4 key购买 nike

我有一个mysql数据库。我想做的是对其执行任意操作,然后找出发生了什么变化。像这样:

//assume connection to db already established

before();//saves db state
perform_action();//does stuff to db
diff();//prints what happened

我希望它输出如下内容:

Row added in table_0 ]details]
Row added in table_1 [details]
Row modified in table_5 [details]
Row deleted in table_2 [details]

有什么想法吗?


进一步澄清:您知道在 stackoverflow 上,如果您检查帖子的编辑,您会看到红线/绿色突出显示表明发生了什么变化?我想要类似的东西,但用于 mysql 数据库。

最佳答案

与其复制整个数据库以保存状态以供以后比较,不如使用触发器:

http://dev.mysql.com/doc/refman/5.0/en/triggers.html

当您设置适当的触发器时,您可以将更改记录到表中 - 例如,您可以设置一个触发器来自动记录每次更新的旧值和新值。要查看更改,请查询触发器填充的表。

当然,触发器不限于您的应用程序所做的更改,它还会记录其他应用程序所做的更新。但是,如果您将旧版本的数据库与新版本的数据库进行 diff,也会出现这种情况。

关于php - 获取 MySQL 数据库差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3166880/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com