我正在考虑实现存储过程或触发器事件来跟踪数据库中任何地方所做的更改。我找到了如何使用触发器跟踪对特定表的更改的示例 - 但没有任何关于如何在更广泛级别上跟踪更改的示例 - 也没有任何允许我传递变量的示例,例如创建的用户的 ID改变。理想情况下 - 我想做的是以下几点:
每当数据库中的记录更新时,在历史表中创建一条记录——无论它在哪个表中——它包含以下信息:
- 记录在哪个表
- 记录的主键(自动递增的整数)
- 已更新列的名称
- 新价值
- 进行更改的用户的 ID
- 进行更新的用户的 IP 地址
如果需要,我不介意在 PHP 脚本中手动调用存储过程 - 我只是希望有一种方法可以自动填充发生更改的表名、列名!