目录
一、事务
1.什么是事务?
(1)事务是一组操作的集合,它会把所有的操作作为一个整体一起向数据库提交或者撤销操作请求,它是一个不可分割的工作单位,这些操作要么同时成功,要么同时失败。
(2)运用场景:
假设现在有两张数据库表,type(图片分类)和picture(图片),两张表中分别存有数据。现在有一个需求:删除图片分类为风景这个类型,且删除该分类下的所有图片。
假设这个需求分两步完成:1)删除type表中风景这个分类;2)删除picture表中type_id=1的这些图片。如果完成第一步操作的时候成功了,但是在完成第二步的时候失败了。在没有使用事务的情况下,数据库中的数据就会不一致。因为在type表中风景这个图片分类删除成功,但是picture表中属于type_id=1的这个分类的图片没有被删除,造成了数据不一致 。因此,对数据库中的数据有修改的一些连续操作,需要将他们放到一个事务中来确保数据库里面的数据一致。当这些操作都成功时,提交事务(分类及所属该分类的图片都成功在数据库中删除);当这些操作中有一个操作没有成功,回滚事务(数据库中的数据不会发生修改)。
id(主键) | name(名称) |
1 | 风景 |
2 | 萌宠 |
3 | 二次元 |
4 | 微信 |
id(主键) | type_id(分类id) |
name(名称) |
1 | 1 | 风景1 |
2 | 1 | 风景2 |
3 | 2 | 萌宠1 |
4 | 2 | 萌宠2 |
5 | 3 | 二次元1 |
6 | 4 | 微信1 |
7 | 4 | 微信2 |
2.事务的操作指令
(1)开启事务:start transaction / begin;
一组操作开始前,开启事务。
ÿ