delete未提交rollback是否会改变行号
来源:互联网 发布:java 小红本 编辑:程序博客网 时间:2024/06/05 16:06
今天做个试验,delete未提交rollback是否会改变行号?
创建测试表:create table dxmy (id number,name varchar2(100));插入数据insert into dxmy values(1,'dxmy');insert into dxmy values(2,'dxmy');insert into dxmy values(3,'dxmy');insert into dxmy values(4,'dxmy');commit;查看行号SQL> select dbms_rowid.rowid_relative_fno(rowid) fno, 2 dbms_rowid.rowid_block_number(rowid) block_id, 3 dbms_rowid.rowid_row_number(rowid) row_id, 4 id 5 from dxmy; FNO BLOCK_ID ROW_ID ID---------- ---------- ---------- ---------- 4 462 0 1 4 462 1 2 4 462 2 3 4 462 3 4 delete,但是不提交:SQL> delete dxmy where id = 1; 1 row deleted SQL> SQL> select dbms_rowid.rowid_relative_fno(rowid) fno, 2 dbms_rowid.rowid_block_number(rowid) block_id, 3 dbms_rowid.rowid_row_number(rowid) row_id, 4 id 5 from dxmy; FNO BLOCK_ID ROW_ID ID---------- ---------- ---------- ---------- 4 462 1 2 4 462 2 3 4 462 3 4rollback:SQL> rollback; Rollback completeSQL> select dbms_rowid.rowid_relative_fno(rowid) fno, 2 dbms_rowid.rowid_block_number(rowid) block_id, 3 dbms_rowid.rowid_row_number(rowid) row_id, 4 id 5 from dxmy; FNO BLOCK_ID ROW_ID ID---------- ---------- ---------- ---------- 4 462 0 1 4 462 1 2 4 462 2 3 4 462 3 4行号未改变。那如果delete之后,我提交了,然后重新插入呢?SQL> delete dxmy where id = 1; 1 row deleted SQL> commit; Commit completeSQL> insert into dxmy values(1,'dxmy'); 1 row inserted SQL> commit; Commit completeSQL> select dbms_rowid.rowid_relative_fno(rowid) fno, 2 dbms_rowid.rowid_block_number(rowid) block_id, 3 dbms_rowid.rowid_row_number(rowid) row_id, 4 id 5 from dxmy; FNO BLOCK_ID ROW_ID ID---------- ---------- ---------- ---------- 4 462 1 2 4 462 2 3 4 462 3 4 4 463 0 1<pre name="code" class="html">SQL> delete dxmy where id = 1; 1 row deleted SQL> commit; Commit complete
SQL> insert into dxmy values(1,'dxmy2');
1 row inserted
SQL> commit;
Commit complete
SQL>
SQL> select dbms_rowid.rowid_relative_fno(rowid) fno,
2 dbms_rowid.rowid_block_number(rowid) block_id,
3 dbms_rowid.rowid_row_number(rowid) row_id,
4 id
5 from dxmy;
FNO BLOCK_ID ROW_ID ID
---------- ---------- ---------- ----------
4 462 1 2
4 462 2 3
4 462 3 4
4 463 1 1
然后就发现:
1.delete未提交即rollback不会改变行号
2.delete提交后插入数据,可能会改变行号,但是也有可能不改变,但行的位置肯定会改变。
0 0
- delete未提交rollback是否会改变行号
- c++: 是否会自动delete?
- delete 大表后kill session是否会recover?
- iOS APNS device Token 是否会改变?
- 【未解决】next是什么?会在原地改变对象?
- 【MARK】C# DataGridView控件单元格 未提交 内容改变事件
- commit,rollback的提交及时性
- 查看git仓库是否有文件未提交
- 将变量传入方法最终值是否会改变!
- 分析ROLLBACK是否产生日志信息
- 【rollback】
- 使用oledb访问Oracle,ExecuteNonQuery是否立刻提交呢,是否会造成死锁
- 按钮点击调用JS验证,验证未通过依旧会提交表单问题
- 类继承中,通过基类指针delete释放,是否会造成内存泄漏
- 类继承中,通过基类指针delete释放,是否会造成内存泄漏
- 【QT】表格控件+qt中没delete是否会内存泄漏
- SQL中truncate 、delete与drop区别 (Rollback Segment)
- Oracle Delete分批提交
- 倒计时(获取验证码的倒计时)
- 60个国外免费3D模型下载网站
- EventBus 基础篇
- 外挂制作必备工具下载.
- RESTful设计原则和样例(开发前后台接口)
- delete未提交rollback是否会改变行号
- 基于RESTful API 怎么设计用户权限控制?
- 后台启动Activity
- java端RESTful web services的几种实现方式
- linux gzip gunzip
- Android View 事件分发机制 源码解析
- 一:Java 并发和多线程的介绍
- 开发RESTful web Service
- python mysql