drop trigger if exists payments_after_insert;
delimiter $$
-- 在 payments表 insert 之后 触发
create trigger payments_after_insertafter insert on paymentsfor each row -- 作用于受影响的每一行
beginupdate invoicesset payment_total=payment_total + new.amountwhere invoice_id = new.invoice_id;insert into payments_audit -- 审计记录values(new.client_id,new.date,new.amount,'insert',now());
end $$
delimiter ;drop trigger if exists payments_after_delete;
delimiter $$
create trigger payments_after_deleteafter delete on paymentsfor each row
beginupdate invoicesset payment_total=payment_total-old.amountwhere invoice_id=old.invoice_id;insert into payments_audit -- 审计记录values(old.client_id,old.date,old.amount,'delete',now());
end$$
delimiter ;insert into payments
values(default,5,3,'2019-01-01',10,1);
select *
from invoices;delete
from payments
where invoice_id=3;SELECT * FROM payments_audit; -- 查询审计记录表