关于提交和回滚
比如说Navicat是客户端,在Navicat中写了一个插入的SQL语句,然后选择执行,然后得到插入成功的影响了1条数据的信息。这里怎么体现了提交commit呢?
又比如写了一条连续插入三条信息的语句,结果其中有一条语句写错了数据类型,报错会回滚,这里有在哪里体现了回滚呢?
以及为什么需要设置手动提交而不是自动提交?
那些场景会需要手动提交?哪些需要自动提交?
30
收起
正在回答 回答被采纳积分+1
3回答
好帮手慕小脸
2020-08-25 14:55:57
同学你好,
1、在Navicat中写了一个插入的SQL语句,然后选择执行,然后得到插入成功的影响了1条数据的信息。这里怎么体现了提交commit呢?
答:commit的作用是将数据更改提交给数据库。当编写完sql后,然后执行sql到数据库中可称之为提交
2、又比如写了一条连续插入三条信息的语句,结果其中有一条语句写错了数据类型,报错会回滚,这里有在哪里体现了回滚呢?
答:当添加数据错误时,新增的数据会回滚到之前没有新增时的状态
3、手动提交事务的好处: 当业务逻辑复杂时,可以根据具体需要来提交事务。
比如: 银行转账的业务,在A行取款和在B行存款相当于对两张表分别进行update操作。但一旦中间产生错误,需要这两个操作都回滚。这种情况下这两个sql需要绑定为一个事务。此时,不是在A取款后提交事务,而是在B存款也执行后,提交事务。
如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~
3. Java 数据库开发与实战应用
- 参与学习 人
- 提交作业 357 份
- 解答问题 8016 个
本阶段将带你学习MySQL数据库,JDBC接口,MyBatis框架等,带你掌握的数据的存放和管理。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星