手抄报 安全手抄报 手抄报内容 手抄报图片 英语手抄报 清明节手抄报 节约用水手抄报

关系型数据库如何保证数据的一致性

时间:2024-10-16 20:29:54

1、首先我们打开shell或者其他命令窗口也可以,创建好两张表,两张表中均只有一个id和一个name,如下

关系型数据库如何保证数据的一致性

2、这时候我们写两条插入语句,第一条插入test,第二条插入test2,然后第二条语句让他报错:

关系型数据库如何保证数据的一致性

3、这时候我们去查询一下两张表,我们会发现test表数据插入进去了:

关系型数据库如何保证数据的一致性

4、那么我们如何保证两张表数据一致呢,要么同时成功,要么同时失败。其实只要保证两条语句在同一个事务里面就可以了,而mysql默认是自动提交事务的,也就是说执行完一条sql就自动提交了,然后再执行第二条。如下,@@autocommit=1表示自动提交

关系型数据库如何保证数据的一致性

5、我们通过set autocommit=0把@@autocommit改为0,然后查询发现这时候已经变为0了

关系型数据库如何保证数据的一致性

6、接下来我们再来执行2条插入语句,也是一条成功一条失败,然后我们重新打开一个数据库连接(不能再原有连接上面看),这里为了方便,就再用工具去连接了,然后去查询test表,我们会发现,test表提示插入成功的数据其实并没有成功,查出来依然只有之前插入的一条数据

关系型数据库如何保证数据的一致性
关系型数据库如何保证数据的一致性

7、这是因为我们把自动提交关闭了,mysql并没有把数据提交,所以其他人是看不到的,这时候我们手动commit一下事务,然后再去查看,这时候就会发现数据可以查出来了,通过这个事务我们就可以控制数据一致,假如我们发现事务中有某一条数据失败,我们就不提交,而选择rollback,就可以实现数据回滚,从而实现数据一致性

关系型数据库如何保证数据的一致性
关系型数据库如何保证数据的一致性
© 手抄报圈