在mysql表中的列级别更改记录

时间:2013-03-18 11:35:05

标签: mysql audit-tables

我的客户希望在列级维护审核。他想要一张存储所有审计的表格,即列级别。我决定采用桌面结构。即

id,tablename,tablecolumn,primarkey,oldvalue,newvalue,date

但我想知道如何检查每个列级别的更改。我是否必须像old.columnname<>一样手动检查每一个。 new.columnname然后添加到审计表?

还有其他办法吗?

1 个答案:

答案 0 :(得分:1)

当我被赋予相同的任务时,我已经创建了几个存储过程来修改表数据和限制表上的CUD操作,以强制用户只使用存储过程。

SP实际上正在执行请求的操作(即创建,更新或删除表中的一行),并为每个操作在审计表中添加一行。

从数据库优化的角度来看,这可能效率很低,但我认为它可以为您提供最多的审计,因为更新操作和审计会自动放入事务中,如果不添加审计条目,则无法完成更新。