2017-04-01 61 views
0

假設有一個數據庫包含一個具有日期和事件列的表,現在共有10條記錄,我希望那些比當前日期更早的記錄應該自動成爲刪除和現在的日期記錄應該在數據庫中存在,以便將來的記錄也應該存在,是否有人知道這樣的事情或可以幫助我如何實現這一目標。任何參考將有所幫助。我打開php,phpmyadmin,sql。任何幫助,將不勝感激。可以通過檢查日期列自動刪除記錄的數據庫

+5

的[是否MySQL的有無時間可能重複基於觸發器?](http://stackoverflow.com/questions/2402097/does-mysql-have-time-based-triggers) – Psi

回答

1

首先它太寬泛了。您可以考慮使用MySQL Event Scheduler來達到此目的。您可以設置爲每運行24小時,並刪除所有記錄小於NOW()

+0

你能指出一些參考或教程,我可以學習這一點? –

+0

@TheMan,每當我嘗試打開phpmyadmin中的事件時,已經連接mysql documentaion – Rahul

+0

它說我需要超級特權才能做到這一點,如何克服這一點? –

0

激活事件支持:

SET GLOBAL event_scheduler = ON; 

添加sheduler:

DELIMITER | 
DROP EVENT IF EXISTS `clear_old_rows`| 
CREATE EVENT `clear_old_rows` 
    ON SCHEDULE 
    EVERY 1 HOUR STARTS CURRENT_TIMESTAMP 
    ON COMPLETION PRESERVE 
    ENABLE 
    COMMENT 'clear all rows < CURRENT_TIMESTAMP' 
    DO 
    BEGIN 
     DELETE FROM tablename WHERE date < CURRENT_TIMESTAMP ; 
    END | 
DELIMITER ; 
+0

當我嘗試激活事件它說我需要超級特權這樣做,現在我得到那個? –

+0

必須以root身份登錄。 'mysql -u root -p'rootpass'' – Redr01d