2023-06-22 00:36:35 來源 : 萬能網(wǎng)
(相關(guān)資料圖)
rowid會變嗎,rowid這個(gè)很多人還不知道,現(xiàn)在讓我們一起來看看吧!
1、ROWID是一種數(shù)據(jù)類型,它使用基于64為編碼的18個(gè)字符來唯一標(biāo)識一條記錄物理位置的一個(gè)ID,類似于Java中一個(gè)對象的哈希碼。
2、都是為了唯一標(biāo)識對應(yīng)對象的物理位置,需要注意的是ROWID雖然可以在表中進(jìn)行查詢,但是其值并未存儲在表中。
3、所以不支持增刪改操作,下面看個(gè)例子:[html]view plaincopySELECTROWNUM,ROWID,empno,ename,jobFROMempWHEREROWNUM<=5;結(jié)果如下:可以看到ROWID確實(shí)由18個(gè)字符組成,組成結(jié)構(gòu)如下:數(shù)據(jù)對象編號 文件編號 塊編號 行編號 OOOOOO FFF BBBBBB RRR 至于ROWID的作用。
4、由于ROWID用來唯一標(biāo)識表中數(shù)據(jù)的唯一性,所以可以利用這個(gè)特性去除重復(fù),舉個(gè)例子。
5、首先運(yùn)行下述兩行代碼:[html]view plaincopyCREATETABLEdept_bakASSELECT*FROMdept;INSERTINTOdept_bakSELECT*FROMdept;得到一個(gè)如下的數(shù)據(jù)庫表很明顯,數(shù)據(jù)有重復(fù)的,但是ROWID肯定不會重復(fù)的。
6、那么就可以利用這個(gè)特性去重,簡單示例代碼如下:[html]view plaincopyDELETEFROMdept_bakWHEREROWIDNOTIN(SELECTMIN(ROWID)FROMdept_bakGROUPBYDEPTNO);。
本文到此分享完畢,希望對大家有所幫助。