oracle rowid and postgresql ctid

首先介绍一下oracle rowid,数据库表行中的物理标识<wbr style=""><div style=""> <div style="line-height:25px">SQL&gt; select rowid from book_info where rownum&lt;=1;</div> <div style="line-height:25px"><br style="line-height:25px"></div> <div style="line-height:25px">ROWID</div> <div style="line-height:25px">------------------</div> <div style="line-height:25px">AAAQTJAAaAAAAoaAAA</div> </div> <div style=""><br style="line-height:25px"></div> <div style=""> <p style="padding-bottom:0px; line-height:19px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; color:rgb(75,75,75); font-size:13px; padding-top:0px"> ROWID的格式如下:</p> <p style="padding-bottom:0px; line-height:19px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; color:rgb(75,75,75); font-size:13px; padding-top:0px"> 数据对象编号 文件编号 块编号 行编号<br style="line-height:23px"> OOOOOO FFF BBBBBB RRR</p> <p style="padding-bottom:0px; line-height:19px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; color:rgb(75,75,75); font-size:13px; padding-top:0px"> 由此看出,AAAQTJ是数据对象编号,AAa是文件编号,AAAAoa是块编号,AAA是行编号</p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> </p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px"><span style="line-height:20px">select rowid ,</span></span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px"><span style="line-height:20px">substr(rowid,1,6) "OBJECT",</span></span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px"><span style="line-height:20px">substr(rowid,7,3) "FILE",</span></span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px"><span style="line-height:20px">substr(rowid,10,6) "BLOCK",</span></span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px"><span style="line-height:20px">substr(rowid,16,3) "ROW"</span></span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px"><span style="line-height:20px">from book_info where rownum&lt;=5;</span></span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px"><span style="line-height:20px">查出64位编码的值:</span></span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px"></span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px">ROWID OBJECT FILE BLOCK ROW</span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px">------------------ ---------- ---------- ---------- ------------------------------------------------------</span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px">AAAQTJAAaAAAAoCAAB AAAQTJ AAa AAAAoC AAB</span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px">AAAQTJAAaAAAAoCAAC AAAQTJ AAa AAAAoC AAC</span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px">AAAQTJAAaAAAAoCAAD AAAQTJ AAa AAAAoC AAD</span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px">AAAQTJAAaAAAAoCAAE AAAQTJ AAa AAAAoC AAE</span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px">AAAQTJAAaAAAAoCAAF AAAQTJ AAa AAAAoC AAF</span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px">查出10进制的值:</span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px"></span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px">SQL&gt; select dbms_rowid.rowid_object(rowid) object_id, dbms_rowid.rowid_relative_fno(rowid) file_id,</span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px"> dbms_rowid.rowid_block_number(rowid) block_id ,dbms_rowid.rowid_row_number(rowid) num from book_info where rownum&lt;=5;</span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px"><br style="line-height:23px"></span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px">OBJECT_ID FILE_ID BLOCK_ID NUM</span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px">---------- ---------- ---------- ----------</span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px"> 66761 26 2568 0</span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px"> 66761 26 2568 1</span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px"> 66761 26 2568 2</span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px"> 66761 26 2568 3</span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px"> 66761 26 2568 4</span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px">获取rowid函数:</span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> </p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px">create or replace function get_rowid</span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px">(l_rowid in varchar2)</span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px">return varchar2</span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px">is</span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px">ls_my_rowid varchar2(200); </span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px">rowid_type number; </span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px">object_number number; </span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px">relative_fno number; </span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px">block_number number; </span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px">row_number number;</span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px">begin</span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px">dbms_rowid.rowid_info(l_rowid,rowid_type,object_number,relative_fno, block_number, row_number); </span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px">ls_my_rowid := 'Object# is :'||to_char(object_number)||chr(10)||</span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px"> 'Relative_fno is :'||to_char(relative_fno)||chr(10)||</span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px"> 'Block number is :'||to_char(block_number)||chr(10)||</span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px"> 'Row number is :'||to_char(row_number);</span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px">return ls_my_rowid ;</span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px">end; </span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px">/</span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px"><br style="line-height:23px"></span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px">select get_rowid(rowid) from book_info where rownum&lt;=1;</span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> </p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px">Object# is :66761</span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px">Relative_fno is :26</span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px">Block number is :2586</span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px">Row number is :0</span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px">当然最常用的是用rowid去除重复:</span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px">查出重复数据:</span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> </p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px">select a.rowid,a.* from 表名 a</span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px">where a.rowid !=</span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px">(</span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px"> select max(b.rowid) from 表名 b</span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px"> where a.字段1 = b.字段1 and</span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px"> a.字段2 = b.字段2</span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px">)</span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px">删除重复数据:</span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> </p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px">delete from 表名 a</span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px">where a.rowid !=</span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px">(</span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px"> select max(b.rowid) from 表名 b</span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px"> where a.字段1 = b.字段1 and</span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px"> a.字段2 = b.字段2</span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px">)</span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px">对于整行都重复的那么,可以使用distinct函数。</span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px"><br style="line-height:23px"></span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px">以下介绍下postgresql的ctid</span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> </p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px">testuser=# select ctid,* from t1 limit 1;</span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px">ctid | a </span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px">-------+-----------</span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px">(0,1) | 100000000</span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px">和oracle rowid类似也是一个物理字段,自动生成,不过结构和oracle rowid不一样,可以看到是(blockid,itemid)</span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px">ctid在数据更改后也会变化。</span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px"><br style="line-height:23px"></span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px">利用ctid去除重复数据:</span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px">建立测试表,插入数据:</span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> </p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px">testuser=# create table t2 (id int,name varchar(20));</span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px">CREATE TABLE</span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px">testuser=# insert into t2 values (1,'apple');</span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px">INSERT 0 1</span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px">testuser=# insert into t2 values (1,'apple');</span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px">INSERT 0 1</span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px">testuser=# insert into t2 values (1,'apple');</span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px">INSERT 0 1</span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px">testuser=# insert into t2 values (2,'orange');</span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px">INSERT 0 1</span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px">testuser=# insert into t2 values (2,'orange');</span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px">INSERT 0 1</span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px">testuser=# insert into t2 values (2,'orange');</span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px">INSERT 0 1</span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px">testuser=# insert into t2 values (2,'orange');</span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px">INSERT 0 1</span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px">testuser=# insert into t2 values (3,'banana');</span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px">INSERT 0 1</span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px">testuser=# insert into t2 values (3,'banana');</span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px">INSERT 0 1</span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px"><br style="line-height:23px"></span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> </p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px">testuser=# select * from t2;</span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px">id | name </span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px">----+--------</span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px"> 1 | apple</span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px"> 1 | apple</span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px"> 1 | apple</span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px"> 2 | orange</span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px"> 2 | orange</span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px"> 2 | orange</span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px"> 2 | orange</span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px"> 3 | banana</span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px"> 3 | banana</span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px">查询重复的数据:</span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> </p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px">testuser=# select ctid,* from t2 where ctid in (select min(ctid) from t2 group by id);</span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px">ctid | id | name </span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px">-------+----+--------</span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px">(0,1) | 1 | apple</span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px">(0,4) | 2 | orange</span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px">(0,8) | 3 | banana</span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px">删除重复数据并查看结果:</span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> </p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px">testuser=# delete from t2 where ctid not in (select min(ctid) from t2 group by id);</span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px">DELETE 6</span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px">testuser=# select * from t2;</span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px">id | name </span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px">----+--------</span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px"> 1 | apple</span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px"> 2 | orange</span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px"> 3 | banana</span></p> <p style="padding-bottom:0px; line-height:25px; text-indent:0px; margin:5px auto; padding-left:0px; padding-right:0px; padding-top:0px"> <span style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; font-size:12px; color:#4b4b4b; line-height:23px">(3 rows)</span></p> </div> </wbr>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值