Mysql每天執行計划,保留最新的10條數據,其余的刪除
1、Mysql 保留最新的10條數據
sql語句:
DELETE tb FROM tbname AS tb,( SELECT id FROM tbname ORDER BY id desc LIMIT 9,1 ) AS tmp WHERE tb.id<tmp.id
2、新建存儲過程(Navicat中)
CREATE PROCEDURE test() BEGIN DELETE tb FROM testdata AS tb,( SELECT id FROM testdata ORDER BY id desc LIMIT 9,1 ) AS tmp WHERE tb.id<tmp.id END;
3、新建事件
3.1 在定義中輸入CALL test();
3.2 在計划中設置STARTS和ENDS,我設置的每天一次
常見問題:
若提示“事件計划已關閉。可能是服務器啟動未開啟啟動事件計划的處理。
解決方法:
查看一下MYSQL的系統變量 event_scheduler
show variables like 'event_scheduler ';
打開這個設置
set global event_scheduler=1;