oracle中rollback语句作用范围
DDL数据定义语言,所谓数据定义,指的是建表啊、建字段啊这种改变数据结构的操作。。。
DML数据操纵语言,指的是对数据的操作,如增、改、查、删这种。。。
DCL data control language 主要用来授予或回收访问数据库的某种特权,控制数据库操作事务发生的时间及效果,对数据库进行监视等;
一,GRANT 语句; 赋予用户权限
常用数据对象权限
(1) ALL ON 数据对象名
(2) SELECT ON 数据对象名
(3) UPDATE ON 数据对象名
(4) DELETE ON 数据对象名
(5) INSERT ON 数据对象名
(6) ALTER ON 数据对象名
GRANT CONNECT TO USER1;
GRANT SELECT ON TABLE2 TO USER2;
GRANT SELECT, INSERT , DELETE ON TABLE3 TO USER1, USER2;
二,REVOKE语句:回收权限语句
REVOKE CONNECT FROM USER1;
REVOKE SELECT ON TABLE2 FROM USER2;
REVOKE SELECT , INSERT , DELETE ON TABLE3 FROM USER1, USER2;
三,COMMIT语句:提交事务,在进行插入,删除, 修改操作时必须提交
提交的三种方式;
(1),显式提交,用COMMIT直接完成提交为显式提交
(2)隐式提交,用SQL语句间接完成的提交为隐式提交,这些命令有:ALTER , CONNECT, CREATE, DISCONNECT, DROP, EXIT, GRANT, QUIT, REVOKE
(3)自动提交 把AUTOCOMMIT 设为ON 系统自动提交: SET AUTOCOMMIT ON;
(4)正常提交如exit等commit,非正常提交如突然断电rollback
四,ROLLBACK:回滚语句使数据库状态回到上次最后提交事务的状态
ROLLBACK [WORK] TO [SAVEPOINT]//回退到某一点
一个事务起始于DML语句,终止于DDL、DCL或commit语句
在做过DDL语言之后默认提交session,会自动执行了commit命令,做过create之后再rollback无效
问:
对一个表进行Update操作之后
紧接着create一个表。
这时候再写rollback,update会回滚到update之前的数据么
答:
create 表是DDL操作,DDL操作会自动提交,就是说它实际上会自动执行了commit命令
再做rollback已经没有用了
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示