2021-08-28

delimiter $$
create trigger payment_after_insert
	after insert  on payments
    for each row

begin
	update invoices
    set payment_total = payment_total + new.amount
	where invoice_id = new.invoice_id;
end $$

delimiter ;

create trigger payment_after_delete
	after delete  on payments
    for each row

begin
	update invoices
    set payment_total = payment_total - old.amount
	where invoice_id = old.invoice_id;
end $$

delimiter ;

drop trigger if exists payments_after_insert;
drop trigger if exists payments_after_delete;

delimiter $$
create trigger payments_after_insert
	after insert on payments
    for each row
begin
	update invoices
    set payment_total = payment_total + new.amount
    where invoice_id = new.invoice_id;
    
    insert into payments_audit
    values(new.client_id, new.date, new.amount,'Insert', now());
end $$

delimiter $$
create trigger payments_after_delete
	after delete on payments
    for each row
begin
	update invoices
    set payment_total = payment_total - old.amount
    where invoice_id = old.invoice_id;
    
    insert into payments_audit
    values(old.client_id, old.date, old.amount,'Delete', now());
end $$

delimiter ;

show variables like 'event%';

delimiter $$

create event yearly_delete_stale_audit_rows
on schedule
	every 1 year starts '2019-01-01' ends '2029-01-01'
do begin
	delete from payments_audit
    where action_date < now() - interval 1 year;
    
end $$

delimiter ;

use sql_store;

start transaction;
insert into orders(customer_id, order_date, status)
values(1, '2019-01-01', 1);

insert into order_items
values(last_insert_id(),1,1,1);

commit;

show variables like 'autocommit';


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值