oracle 学习笔记 - commit和rollback

COMMIT 是提交你的DML操作.

ROLLBACK 是取消你的DML操作.

  DML操作主要指一些插数据\更新数据的操作,你的操作在没有COMMIT和ROLLBACK前,都还在本机的SESSION中,还没有更新至数据库。

1、首先commit和rollback是在进行insert、update、delete语句完成后需要做的操作(即对表中的记录进行修改),而select则不需要。

    为了防止你的操作有误,执行完以上三种语句后,数据库没有直接把结果保存,

    如果确认无误则可以commit(提交),如果有误(或反悔)可以rollback(回滚)

2、DML可以回滚,DDL不能回滚

    只有DML才需要手动commit

    DDL语句,它是默认提交的,所以rollback没有用

commit 和 rollback 从最终结果上讲是相反的。

a)、commit 将数据的变化永久保留

b)、rollback 将变化之前的数据“还原回去”

c)、一旦发出commit了 就不能rollback了。(但是如果你想恢复数据的话还是有办法的flashback 是可以的)

举例讲:

update a set b=1 where b=2;

commit 的作用是将这个结果永久化。

rollback 的作用相当于 update a set b=2 where b = 1 后 再commit;

什么时候使用commit和rollback?

SQL语言分为五大类:

DDL(数据定义语言) - Create、Alter、Drop 这些语句自动提交,无需用Commit提交。

DQL(数据查询语言) - Select 查询语句不存在提交问题。

DML(数据操纵语言) - Insert、Update、Delete 这些语句需要Commit才能提交。

DTL(事务控制语言) - Commit、Rollback 事务提交与回滚语句。

DCL(数据控制语言) - Grant、Revoke 授予权限与回收权限语句。
  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值