加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

mysql – 创建触发器以将数据添加到Audit Table中

发布时间:2020-12-11 23:38:46 所属栏目:MySql教程 来源:网络整理
导读:假设我们在数据库中有50个表,并且我们希望捕获每个表的列中的所有更改(列的上一个值和新值).将有一个审计表,其中包含以下列: ID,Server_Name,User_Name,Date_Time,Table_Name,Column_Name,Old_Value,New_Value 将有一个审计表,它将捕获该数据库中所有表的更

假设我们在数据库中有50个表,并且我们希望捕获每个表的列中的所有更改(列的上一个值和新值).将有一个审计表,其中包含以下列:

ID,Server_Name,User_Name,Date_Time,Table_Name,Column_Name,Old_Value,New_Value

将有一个审计表,它将捕获该数据库中所有表的更改.我相信我们可以为该数据库的每个表创建触发器.但请告诉我如何将所有数据添加到一个审计表中.如果您能为我提供一个非常有用的工作示例.

感谢致敬,
帕塔 最佳答案 我可以为你提供一种算法,大部分基础工作已经完成:

这可以是您的审计表,应根据您的要求将时间戳列添加为修改日期或更多信息:

CREATE TABLE audit (
     old_data VARCHAR(100),new_data VARCHAR(100),tbl_name VARCHAR(100)
)
|

这可以用作参考触发器;请注意,每个表都有一个单独的触发器:

CREATE TRIGGER testtrigger BEFORE UPDATE ON 

每列可以有多个insert语句.如果要限制不插入未更改的数据,可以在触发器中执行以下更改:

IF(OLD.column_name <> NEW.column_name) THEN
    --Your insert query here
ELSE
    --NOOP
END IF;

让我们知道是否需要更多信息.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读