回覆列表
  • 1 # 嬞菇涼

    --清空全部資料,不寫日誌,不可恢復,速度極快

    truncatetable表名;

    --清空全部資料,寫日誌,資料可恢復,速度慢

    deletefrom表名

    dropfrom表名

  • 2 # 使用者1465424935672

    使用event_scheduler實現,這是個事件的自動排程機制,會定期執行事件中定義的語句;

    1 配置開啟event scheduler

    配置my.ini檔案 中加上 event_scheduler = 1

    重啟mysql服務

    驗證event_scheduler是否已經開啟: show variables like "%event%"; #值為 ON 表明已開啟

    2 建立event

    drop event event_test_a;

    CREATE EVENT event_test_a

    ON SCHEDULE EVERY 1 day STARTS date_add(concat(current_date(), " 00:00:00"), interval 0 second)

    ON COMPLETION PRESERVE ENABLE

    DO

    delete from dbname.`user` where (`name`, `time` ) =

    (

    select `name`, max_time from

    (select `name`, max(`time`) max_time from dbname.`user` group by 1) t

    where max_time

    );

    #說明:

    ON SCHEDULE EVERY 1 day 指定迴圈間隔為每天執行

    STARTS date_add(concat(current_date(), " 23:59:00"), interval 0 second) 指定執行時間為23:59:00

    ON COMPLETION PRESERVE ENABLE 指定建立完成後即啟用,否則需手動啟動

    替換DO後邊的語句中的相關部分(如資料庫dbname, 表名,欄位名等),DO 中也可以執行一個自定義的儲存過程(該儲存過程自已實現業務邏輯)

    3 察看是否開始工作

    SHOW PROCESSLIST; --看是否有event_scheduler的user的程序;

    4 手動關閉事件

    ALTER EVENT event_test_a DISABLE;

    5 手動該事件為可用

    ALTER EVENT event_test_a ENABLE;

  • 中秋節和大豐收的關聯?
  • 你們在飯店上班員工餐都吃的什麼?你們覺的好吃嗎?