資料庫測試資料,日積月累愈來愈多,執行時間也愈來越久,所以需要定期清理資料,如果資料庫只想保留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');
文章標籤
全站熱搜
留言列表