保存点 insert into temp values(9);savepoint a;insert into temp values(19);savepoint b;insert into temp values(29);savepoint c;rollback to b;create table t3(cola int);rollback;求注释及意义 最后会提交几条记录? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 insert into temp values(9);savepoint a;--设置保存点ainsert into temp values(19);savepoint b;--设置保存点binsert into temp values(29);savepoint c;--设置保存点crollback to b;--回滚到保存点b,29这个值消失了;create table t3(cola int);rollback;--不指定回滚位置,默认回滚当前会话的所有操作,temp中添加是所有数据都没了,新建的t3表也没了 --楼上的不正确吧insert into temp values(9);savepoint a;insert into temp values(19);savepoint b;insert into temp values(29);savepoint c;rollback to b; --回滚到b 也就是说29这个值没有了create table t3(cola int);--创建一个新表 这是一个dml语句 会把前面的事物自动commit 也就是给temp插入了 9 和19两个值rollback; --这个rollback一点用的没有 --楼上提醒正解,--忘了dml操作会触发隐式提交--下面做了个测试:SQL> create table temp(col_1 number(5));Table createdSQL> insert into temp values(9);1 row insertedSQL> savepoint a;Savepoint createdSQL> insert into temp values(19);1 row insertedSQL> savepoint b;Savepoint createdSQL> insert into temp values(29);1 row insertedSQL> savepoint c;Savepoint createdSQL> select * from temp; COL_1------ 9 19 29SQL> rollback to b;Rollback completeSQL> select * from temp; COL_1------ 9 19SQL> create table t3(cola int);Table createdSQL> rollback;--创建一个新表 这是一个dml语句 会把前面的事物自动commit 也就是给temp插入了 9 和19两个值Rollback completeSQL> select count(*) from temp; COUNT(*)---------- 2SQL> select * from temp; COL_1------ 9 19SQL> desc t3;Name Type Nullable Default Comments ---- ------- -------- ------- -------- COLA INTEGER Y 1楼和2楼上都不正确吧数据库事务开始于第一条可执行的SQL语句,结束于以下情况:1.COMMIT或ROLLBACK2.DDL语句被执行3.DCL语句被执行4.用户退出SQL*Plus5.机器故障或系统崩溃DDL、DCL语句时自动提交的,因此它们隐含地结束了一个事物,而DML没有这个特性2楼的倒数第二个注释把DML改成DDL就对了 SQL语句包括DML、DDL、DCL http://hi.baidu.com/%C1%FA%B5%C4%B4%AB%C8%CB_lx/blog/item/70368f146021f506b8127b39.html 数据库连接问题~救命啦~急~ 自动执行存储过程与手动执行有区别吗?? 菜鸟提问:关于SQL语句 怎样把oracle库中的值固定为24小时,格式类型的呢?? PLS-00390: undefined column 为什么在装oracle时出现"加载数据库出错"呢?及时给分 ORA-01013: 用户请求取消当前的操作 什么是SAP? 救命啊!怎样才能重新启动我的oracle? 远程能链接orcale,但是服务器本地不行 oracle中的分组查询问题 plsql 修改oracle时出错了
insert into temp values(9);
savepoint a;--设置保存点a
insert into temp values(19);
savepoint b;--设置保存点b
insert into temp values(29);
savepoint c;--设置保存点c
rollback to b;--回滚到保存点b,29这个值消失了;
create table t3(cola int);
rollback;--不指定回滚位置,默认回滚当前会话的所有操作,temp中添加是所有数据都没了,新建的t3表也没了
--楼上的不正确吧
insert into temp values(9);
savepoint a;
insert into temp values(19);
savepoint b;
insert into temp values(29);
savepoint c;
rollback to b; --回滚到b 也就是说29这个值没有了
create table t3(cola int);
--创建一个新表 这是一个dml语句 会把前面的事物自动commit 也就是给temp插入了 9 和19两个值
rollback; --这个rollback一点用的没有
--楼上提醒正解,
--忘了dml操作会触发隐式提交
--下面做了个测试:
SQL> create table temp(col_1 number(5));Table createdSQL> insert into temp values(9);1 row insertedSQL> savepoint a;Savepoint createdSQL> insert into temp values(19);1 row insertedSQL> savepoint b;Savepoint createdSQL> insert into temp values(29);1 row insertedSQL> savepoint c;Savepoint createdSQL> select * from temp; COL_1
------
9
19
29SQL> rollback to b;Rollback completeSQL> select * from temp; COL_1
------
9
19
SQL> create table t3(cola int);Table createdSQL> rollback;
--创建一个新表 这是一个dml语句 会把前面的事物自动commit 也就是给temp插入了 9 和19两个值
Rollback completeSQL> select count(*) from temp; COUNT(*)
----------
2SQL> select * from temp; COL_1
------
9
19SQL> desc t3;
Name Type Nullable Default Comments
---- ------- -------- ------- --------
COLA INTEGER Y
1.COMMIT或ROLLBACK
2.DDL语句被执行
3.DCL语句被执行
4.用户退出SQL*Plus
5.机器故障或系统崩溃DDL、DCL语句时自动提交的,因此它们隐含地结束了一个事物,而DML没有这个特性2楼的倒数第二个注释把DML改成DDL就对了