rowid会变吗(rowid)

摘要 大家好,小豆豆来为大家解答以上的问题。rowid会变吗,rowid这个很多人还不知道,现在让我们一起来看看吧!1、ROWID是一种数据类型,它使用基

大家好,小豆豆来为大家解答以上的问题。rowid会变吗,rowid这个很多人还不知道,现在让我们一起来看看吧!

1、ROWID是一种数据类型,它使用基于64为编码的18个字符来唯一标识一条记录物理位置的一个ID,类似于Java中一个对象的哈希码。

2、都是为了唯一标识对应对象的物理位置,需要注意的是ROWID虽然可以在表中进行查询,但是其值并未存储在表中。

3、所以不支持增删改操作,下面看个例子:[html] view plain copySELECT ROWNUM,ROWID,empno,ename,job FROM emp WHERE ROWNUM <= 5;  结果如下:可以看到ROWID确实由18个字符组成,组成结构如下:数据对象编号    文件编号    块编号    行编号    OOOOOO    FFF    BBBBBB    RRR    至于ROWID的作用。

4、由于ROWID用来唯一标识表中数据的唯一性,所以可以利用这个特性去除重复,举个例子。

5、首先运行下述两行代码:[html] view plain copyCREATE TABLE dept_bak AS SELECT * FROM dept;  INSERT INTO dept_bak SELECT * FROM dept;  得到一个如下的数据库表很明显,数据有重复的,但是ROWID肯定不会重复的。

6、那么就可以利用这个特性去重,简单示例代码如下:[html] view plain copyDELETE FROM dept_bak WHERE ROWID NOT IN( SELECT MIN(ROWID) FROM dept_bak GROUP BY DEPTNO);。

本文到此分享完毕,希望对大家有所帮助。

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时候联系我们修改或删除,多谢。