我试图通过分别捕获插入和更新的用户 ID 和时间戳来实现行级审计。但是由于某种原因,即使更新也会触发插入触发器,并且每次都会更新两个 insert_* 列(对于更新也是如此)。请帮忙。
桌子
create table test
(id varchar(30) primary key,
insert_id varchar(30),
insert_timestamp timestamp,
update_id varchar(30),
update_timestamp timestamp);
BEFORE INSERT 触发器
DELIMITER //
create trigger ins_test
before insert on test
for each row
Begin
set new.insert_id = session_user();
set new.insert_timestamp = now();
End;
//
更新前触发器
DELIMITER //
create trigger upd_test
before update on test
for each row
Begin
set new.update_id = session_user();
set new.update_timestamp = now();
End;
//
-Ganesh