postgresql資料庫中對重複資料的處理

來源:互聯網
上載者:User

標籤:

我們在使用postgresql資料庫的時候,如果一張資料表在未做任何約束的情況下,很可能會出現幾條完全一樣的資料,即重複資料。如所示:

那麼如果我們要刪除其中的2條該怎麼辦呢?第一種我們可以清空表的內容,再使用INSERT INTO語句再將內容插入到表中。此方法可行,但對於專業人士來講,並不推薦

第二種我們可以結合pg資料庫中的ctid(和實體儲存體有關,指的是一條記錄位於哪個資料區塊的哪個位移上面)來進行刪除。這裡我們使用依然先使用SELECT語句進行查詢。

 

這樣我們就可以使用唯一標識的ctid對重複資料進行刪除操作,使用以下兩種方式都可以刪除tb_5201351表中2條資料。

DELETE FROM tb_5201351 WHERE ctid in (‘(0,2)‘,‘(0,3)‘);

上面的方法原理是我們依次手工輸入要刪除指定ctid對應的資料,如果資料較多的話,我們還可以使用如下語句進行刪除。

DELETE FROM tb_5201351 WHERE ctid not in (select min(ctid) from tb_5201351);

執行後的結果如所示:

 

postgresql資料庫中對重複資料的處理

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.