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

在mysql表中记录列级别的更改,mysql,audit-tables,Mysql,Audit Tables,我的客户希望在列级别维护审计。他想要一个存储所有审计的表,即在列级别。我已经决定了桌子的结构。i、 e id,tablename,tablecolumn,primarkey,oldvalue,newvalue,date 但我想知道如何检查每个列级别的更改。我是否必须像old.columnname new.columnname那样手动检查每一个,然后添加到审核表中 还有其他方法吗。当我被赋予相同的任务时,我创建了几个存储过程来修改表数据,并限制表上的CUD操作,以强制用户只使用存储过程 SP实际

我的客户希望在列级别维护审计。他想要一个存储所有审计的表,即在列级别。我已经决定了桌子的结构。i、 e

id,tablename,tablecolumn,primarkey,oldvalue,newvalue,date
但我想知道如何检查每个列级别的更改。我是否必须像old.columnname new.columnname那样手动检查每一个,然后添加到审核表中


还有其他方法吗。

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

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

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