数据库-2-存储过程和函数、触发器、事物

1.存储过程和函数:类似于Java中的方法

1.1存储过程的创建和调用:

 

 1.2存储过程的查看和删除

 1.3存储过程中的语法:

 

 

 

 

 

 2.触发器

执行某个操作会引起另一个操作的执行

 

 

 3.事物

 3.1事物的操作

 

 3.2事物的四大特征

3.2.1事物的隔离级别 

 安全性越来越高,效率越来越低

 解决办法:提高隔离级别

 

 3.2.2脏读的演示和解决

脏读引发问题的理解:一方的事物没有提交另一方看到了修改后的数据,如果最后一方取消了数据的修改,另一方还以为是数据已经修改。

解决脏读:修改隔离级别到read commited 后,甲修改数据,在甲事务提交前乙看不到已经修改了的数据;甲提交事物后,乙可以查看到变化。

3.2.3不可重复读

 

不可重复读引发问题的理解:解决了脏读的情况下,一方的数据没有提交,另一方就不会读到,提交后就会读到修改后的数据,导致两次读到的数据不一致。

解决不可重复度:修改隔离级到repeatable read别之后,甲修改数据并提交事物后,乙仍然看不到数据的变化,要乙的事物也提交了才能看到。

3.2.4幻读

 幻读引发的问题理解:甲在事物中增加一条新的记录,甲去查询数据库,自己能看到这一条新增的记录;甲的事物没有提交前,乙查询数据库中没有该记录,于是也增加了一条一样的记录,在甲提交事物后,乙结果执行失败。乙再去查数据库还是没有看到该记录,提交事物后才看到了这条数据

解决问题:把事物隔离级别提高到serializable(相当于锁表操作), 甲添加一条新的记录,没有提交事物之前,乙去查数据表,会出现卡死的现象,也就是卡死了;甲一提交事物,乙就能马上得到刚才查数据表的结果。

3.3总结

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值