mysql学习进一步学习

事务:

个人理解事务是数据库逻辑集合操作的最小单元,也就是说在做数据库的一系列操作要么全部执行,要不全部不执行。


事务的四大特性:

原子性:

不可分割的操作单元,一个事务中的所有操作要么全部成功,要么全部callback到执行前的状态。举例:a和b两人转账操作,a账户余额500,b账户余额500,a向b转账100成功,b接收a100失败,那个转账操作全部callback回之前状态。

一致性:

一个事务在对数据库操作前后,数据库的状态一致。举例:a和b两人转账操作,a账户余额500,b账户余额500,a向b转账100,a的余额变为400,b的余额变为600,a和b两人在做转账之前余额总和为1000,转账之后余额综合认为1000,那么他就符合事物的一致性。否则不满足事物的一致性。

隔离性:

在并发访问数据的时候,一个正在执行的事物在执行完毕之前,对其他的会话是不可见的,多个并发事物之间的数据是独立的。

持久性:

一个事务一旦被提交,它对数据库中的数据影响是永久性的。


事务的隔离级别:

读未提交(read uncommitted):

读到没有被提交的数据,所有这个隔离机制无法解决脏读,不可重复读,幻读中的任何一种,实际应用中也很少用到。

读已提交(read commited):

一个事务要等待另一个事务提交之后才能读取数据

可重复读(repeatable read):

在开始读取数据库时不允许修改数据。

序列化(serializble):

序列化的隔离级别最高,能避免脏读,重复度,幻读等问题,但是效率低下,比较消耗数据库性能,一般也不推荐使用。


脏读:一般体现在查询过程

幻读: 一般体现在插入和删除过程


存储过程示例:

定义存储过程:

示例表结构:

DELIMITER $ 
CREATE PROCEDURE insertTest()
BEGIN 
	INSERT INTO admin (`username`,`password`) 
		VALUE ("A","root"),("B","root"),("C","root"),("D","root"),("E","root");
END $

调用:

CALL interTest() $

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值