社区
Java EE
帖子详情
关于数据库commit失败后rollback的问题?
ganhuanghuang
2011-10-16 06:43:01
若数据库操作commit发生异常,没有执行回滚,这时数据会存入数据库吗?如果不会存入数据库,为什么还要在程序里写rollback?
...全文
411
6
打赏
收藏
关于数据库commit失败后rollback的问题?
若数据库操作commit发生异常,没有执行回滚,这时数据会存入数据库吗?如果不会存入数据库,为什么还要在程序里写rollback?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
qybao
2011-10-17
打赏
举报
回复
[Quote=引用楼主 ganhuanghuang 的回复:]
若数据库操作commit发生异常,没有执行回滚,这时数据会存入数据库吗?如果不会存入数据库,为什么还要在程序里写rollback?
[/Quote]
LS说了一些了,对于事务的完整性来说,要么整体commit,要么整体rollback,如果事务进行了某些数据库的更新操作,那么数据记录就可能被排它锁住,要释放锁,要么commit,要么rollback,否则其他连接就可能发生等待超时
beiouwolf
2011-10-17
打赏
举报
回复
提交/回滚都是对于事务来说的
只有在同一个事务的前提下,所有进行的操作在commit前都可以进行回滚
dxqrr
2011-10-17
打赏
举报
回复
需要回滚的
leecyz
2011-10-17
打赏
举报
回复
rollback也可能发生异常,所以在开始设置自动提交等于false.
只有commit成功,整个事务才成功。
lmw1314
2011-10-16
打赏
举报
回复
[Quote=引用 1 楼 ss36290109 的回复:]
。。。这个是用作批量的,你100条数据,99条没问题,最后条出问题 你前面99都commit了 最后条出错 那不是整个批量回滚
[/Quote]
正解
ss36290109
2011-10-16
打赏
举报
回复
。。。这个是用作批量的,你100条数据,99条没问题,最后条出问题 你前面99都commit了 最后条出错 那不是整个批量回滚
Oracle
数据库
大事务的数据更改对
数据库
内部的影响
本课程以Oracle 10g
数据库
为基础,来讲解大事务的数据更改在
数据库
内部是如何处理的。 当用户执行一条SQL对
数据库
进行更改操作的时候,我们知道数据是从磁盘读取到内存中进行更改操作的,那么当这个SQL执行时间很长,而且修改数据量非常大,由于内存容量大小的原因,可能在事务没有
commit
提交的情况下,一些脏数据已经写回到了磁盘中。那么在这种情况下,当用户执行
commit
提交操作,
数据库
是如何处理这些已经写到磁盘的脏数据块的? 本课程就以实验的方式得出数据,来验证以上所提出的
问题
。
【SQL语法基础】什么是事务处理,如何使用
COMMIT
和
ROLLBACK
进行操作?
我们在做
数据库
操作的时候,可能会
失败
,但正是因为有事务的存在,即使在
数据库
操作
失败
的情况下,也能保证数据的一致性。同样,多个应用程序访问
数据库
的时候,事务可以提供隔离,保证事务之间不被干扰。最后,事务一旦提交,结果就会是永久性的,这就意味着,即使系统崩溃了,
数据库
也可以对数据进行恢复。......
Mysql:
COMMIT
和
ROLLBACK
COMMIT
: 表示提交数据。一旦执行
COMMIT
,则数据就被永久的保存在了
数据库
中,意味着数据不可以回滚。
ROLLBACK
:回滚数据。一旦执行
ROLLBACK
,则可以实现数据的回滚,回滚到最近的一次
COMMIT
之后。!!
数据库
操作语句执行
失败
后,不一定要
rollback
见标题前提条件 auto
commit
=false 融离级别为read
commit
,不使用语句加锁当一条词句出错后,它本身就没有更改数据,它没有更改数据就没有锁定资源,所以不要
rollback
这只是针对一条语句来说的,但是多条语句就需要
rollback
了。因为由可能前面的数据已经执行了更改,但是后面的却
失败
了。所以要撤消掉前面的结果,并释放资源。当设置auto
commit
=false 时,
Oracle 提交(
commit
)与回滚(
rollback
)
数据库
每执行一个事务,都会有一个提交或者回滚的操作,所以对于
commit
与
rollback
的掌握也是很有必要的,掌握好了他们,可以让我们在编写程序过程的过程中,更加有效的编写程序,以实现自己的需求。 知识无极限,与你来相见,欢迎点赞支持!
Java EE
67,513
社区成员
225,879
社区内容
发帖
与我相关
我的任务
Java EE
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
复制链接
扫一扫
分享
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章