close

資料庫測試資料,日積月累愈來愈多,執行時間也愈來越久,所以需要定期清理資料,如果資料庫只想保留100筆資料,其餘的都刪除,如何下SQL呢?

直接的想法: delete TableName  where rownum >100; (TableName為要刪除資料table的名字)

結果是:0 rows deleted,刪除失敗!  

改成以下語法才能成功: delete TableName  where rownum <= (select (count(*)-100) from TableName );

如果只留50筆資料,把數字100改為50即可。

 

有條件的刪除:例如資料庫有2010至2015年資料(欄位YEAR),2015年資料只保留100筆,加條件後SQL如下:

delete TableName  where YEAR='2015' and rownum <= (select (count(*)-100) from TableName where YEAR='2015');

 

 

 

arrow
arrow
    文章標籤
    SQL 資料庫 刪除 保留
    全站熱搜

    KOEI 發表在 痞客邦 留言(0) 人氣()