kinjouj.github.io

MySQL Event Schedule


MySQL

MySQL5.1の新機能でcronのようなタスクスケジューリングができるのでやってみた

DROP EVENT IF EXISTS sample_samples_evt;

# 最初にSQLデリミタを変えておく
DELIMITER |
CREATE EVENT
    sample_samples_evt
ON SCHEDULE EVERY 10 MINUTE DO
     BEGIN
        DROP TABLE IF EXISTS samples_swap;
        CREATE TABLE samples_swap SELECT * FROM sample;
        ALTER TABLE samples_swap ADD FULLTEXT samples_sample_name_ftidx(name)
    END |
DELIMITER ;

最初にデリミタを変えておかないと複数のSQLを登録できないので注意する。あとevent_schedulerのグローバル変数がOFFになっていると起動しないのでmy.cnfとかに以下を設定しておく

[mysqld]
event_scheduler = ON