当前位置: 代码迷 >> Oracle管理 >> 安插或者更新删除操作没成功,要rollback吗
  详细解决方案

安插或者更新删除操作没成功,要rollback吗

热度:226   发布时间:2016-04-24 04:05:49.0
插入或者更新删除操作没成功,要rollback吗
插入或者更新或者删除语句执行之后遇到报错没成功,要手动rollback吗?
------解决思路----------------------
若在外部程序中
未手动管理事务的话,会自动回滚(因为此处就你自己报错未成功)。
若手动管理事务,这个肯定自己得加上异常处理,至于是否rollback其他就看你要求。

在数据库中包、存储过程等处理的话
这个应养成考虑好异常处理的好习惯。
------解决思路----------------------
单句的 INSERT/UPDATE 语句,无论处理多少条记录,出错就一起取消(要么都成功要么都不成功),无需rollback。
多句的 INSERT/UPDATE 语句,如果有数据一致性的要求(比如从A账号扣100、向B账号加100),开始要起事务、出错也回滚。

正真调用 COMMIT TRAN 的次数不能超过 BEGIN TRAN,超过的命令会出错。
你确定你能点3次commit?可能软件记录了当前事务的状态,多余的点击就忽略了。
------解决思路----------------------
你试试去搜SQL-92之类的(英文)标准,基本上就属于“就是这么规定的”,没什么好讨论。