gpt4 book ai didi

sql - 这是维护 mysql 表更改的日志/审计表的合理方法吗?

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

<分区>

我想维护我的架构中多个表的更改日志表。我正在尝试对其进行设置,这样我就不需要在插入语句中列出所有字段,因此我将日志表设置为与主表具有完全相同的结构——我只是删除了自动递增/主键并调整时间戳。

一旦我确定这可行,我计划使用一些动态 sql 自动设置日志表和触发器。

这是一个合理的方法吗?日志表上没有任何主键有什么问题吗?

CREATE member (
id INTEGER AUTO_INCREMENT,
first_name VARCHAR(50) NOT NULL,
last_name VARCHAR(50) NOT NULL,
last_updated TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (id)
);

-- Add change log table
CREATE TABLE change_log.member_log LIKE member;
ALTER TABLE change_log.member_log CHANGE id id INTEGER;
ALTER TABLE change_log.member_log CHANGE last_updated last_updated DATETIME;
ALTER TABLE change_log.member_log DROP PRIMARY KEY;
DELIMITER $$
CREATE TRIGGER log_member_changes_on_update BEFORE UPDATE ON member FOR EACH ROW
BEGIN
INSERT INTO change_log.member_log SELECT * FROM member WHERE id = NEW.id;
END$$
DELIMITER ;

非常感谢

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