关于数据库事务的问题

clarck_913 2014-07-05 05:04:21
想问下各位高手达人

我有3条SQL语句分别执行数据库3张表的更新操作

这3条语句是放在一个事务中执行的

但是,执行完第一条语句后

数据库断电了

如何保证数据的一致性?

数据库有相关的机制吗?
...全文
730 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
yang448246711 2015-01-24
  • 打赏
  • 举报
回复
没commit的话。就没关系啦。不过很容易锁表的哦。锁表后这个表你就只能查询了,不能操作里面的数据 ,需要去sys用户下kill掉
绕天涯_2014 2015-01-23
  • 打赏
  • 举报
回复
oracle数据库插入数据没有commit,是不会提交到数据库中的
生命沉思者 2014-11-27
  • 打赏
  • 举报
回复
引用 12 楼 kxjrzyk 的回复:
这个实际很简单,你事务没有提交,修改只是在内存中修改而已,并定写到数据文件中去,所以即使断电,只是内存丢失,就象没有发生过这件事而已
并未写到数据文件中去,打错字了
生命沉思者 2014-11-27
  • 打赏
  • 举报
回复
这个实际很简单,你事务没有提交,修改只是在内存中修改而已,并定写到数据文件中去,所以即使断电,只是内存丢失,就象没有发生过这件事而已
ffshao 2014-11-26
  • 打赏
  • 举报
回复
事务的原子性要求,如果把一个事务看作是一个程序,它要么完整的被执行,要么完全不执行。就是说事务的操纵序列或者完全应用到数据库或者完全不影响数据库。 假如用户在一个事务内完成了对数据库的更新,这时所有的更新对外部世界必须是可见的,或者完全没有更新。前者称事务已提交,后者称事务撤销。DBMS必须确保由成功提交的事物完成的所有操作在数据库内有完全的反映,而失败的事务对数据库完全没有影响。 一个事务内部的操作及正在操作的数据必须封锁起来,不被企图进行修改的事务看到。分离性是DBMS针对并发事务间的冲突提供的安全保证。DBMS可以通过加锁在并发执行的事务间提供不同级别的分离。
小麻雀NG 2014-11-24
  • 打赏
  • 举报
回复
这个是事务特性里面的四大特性之一:原子性。事务中包含的程序作为数据库的逻辑工作单位,它所做的对数据修改操作要么全部执行,要么完全不执行。
ning_wnn2014 2014-11-17
  • 打赏
  • 举报
回复
数据库中的事务是原子的,只有完全执行后,commit,才会提交,把数据更新到数据库中,如果没有执行完,数据库的事务会自动回滚,回到操作之前一致的状态,然后重启后重新执行就可以了。
sych888 2014-07-29
  • 打赏
  • 举报
回复
会回滚到更新前的状态,重启后有SMON进程来完成
sunboy_yf 2014-07-25
  • 打赏
  • 举报
回复
如果你没有提交的话,会自动回滚的
tumblewind 2014-07-25
  • 打赏
  • 举报
回复
没有提交的在下次启动数据时就会自动回滚,再把它们重新执行一次就行了。
卖水果的net 2014-07-10
  • 打赏
  • 举报
回复
不要怕,回滚了,你再重新执行就可以了。 原因: 你没有 执行完,所以也不会 commit ,日志就不会标记完成。就当没发生过这事儿一样。
sunboy_yf 2014-07-10
  • 打赏
  • 举报
回复
你所做的操作不生效,不过这种情况下容易产生锁的现象。
  • 打赏
  • 举报
回复
引用 楼主 clarck_913 的回复:
想问下各位高手达人 我有3条SQL语句分别执行数据库3张表的更新操作 这3条语句是放在一个事务中执行的 但是,执行完第一条语句后 数据库断电了 如何保证数据的一致性? 数据库有相关的机制吗?
楼主你不用担心的,这个是事务特性里面的原子性。事务中包含的程序作为数据库的逻辑工作单位,它所做的对数据修改操作要么全部执行,要么完全不执行。
Yakecanz 2014-07-06
  • 打赏
  • 举报
回复
3条SQL语句分别执行数据库3张表的更新操作 3条语句执行完毕再一次性COMMIT,如果3条语句没有执行完,没有COMMIT,数据库会自动回滚的,在数据库重新启动时。
huangdh12 2014-07-05
  • 打赏
  • 举报
回复
没有提交的事务会回滚。

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧