mysql入门(四)

来源:互联网 发布:word电脑软件 编辑:程序博客网 时间:2024/05/18 15:23

【引言】接着上篇文章的节奏来讲
一、事务
【例题】:假设某银行的数据库,用户A给B用户B转账1000,此时A用户账号上余额应该减少1000,
此时B用户的账户应该多出1000。
这里写图片描述
但是当A操作完后,A用户的账号钱也减少了,这时突然停电了。。。B用户的钱没变;
现实当中遇到这样的事情,这就很坑了!
这时候事务就排上用场了,事务会保证两个操作要么都完成,就是成功,只要两个全没完成就失败;
事务提供了数据库在遭遇异常时,能够保证数据的一致性;
(1)事务原理:
(2)语法:
1. 开启事务start transaction,可以简写为 begin
2. 然后记录之后需要执行的一组sql
3. 提交commit
4. 如果所有的sql都执行成功,则提交,将sql的执行结果持久化到数据表内。
5. 回滚rollback
6. 如果存在失败的sql,则需要回滚,将sql的执行结果,退回到事务开始之时
7. 无论回滚还是提交,都会关闭事务!需要再次开启,才能使用。
8. 还有一点需要注意,就是事务只针对当前连接。
(3)事务的基本操作:
1.开启事务:告诉系统以下操作先不要提交到数据库中,先放到事务日志中,如果提交失败,回到start状态,成功就写入数据库,
2.进行一系列事务操作;
3.commit 或 rollback;
(4)特性:
原子性:事务是不可分割的!
一致性:保证数据在事务的执行周期内,是一致的!
隔离型:多个事务之间的干扰关系!隔离级别!
持久性:事务一旦被提交,就不可能再被回滚!