Mysql boy 2
P79:触发器
书接上回,触发器不可以自己更新自己
也就是说,触发器不可以更新自己所在的表格
ex:
drop trigger if exists payments_after_insert; 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; end$$ delimiter ;
其中,update不可以更新自己,即 update不可以update payments
注:如果需要插入-----> insert into
如果需要删除-----> delete from
P80:查看trigger
面板上没有查看trigger的选项,所以我们需要用代码来查看trigger
show triggers
or
show triggers like 'payment%'
P82:对触发器进行审计
P83:events 事件
不知道events有啥用,哈哈哈哈哈
P85:事务 transactions
如果想一下解决插入表的问题,可以使用transaction
start transaction; insert into orders (customer_id,order_date,status) values (1,'2019-01-01',1); insert into order_items value(last_insert_id(),1,1,1); commit
在开始前要设定一个start transaction
结束之后要写一个commit
P89:事务隔离级别
transaction isolation level
重要的隔离级别就是 repeatable read
P103 Json类型
P104:设计数据库