Sử dụng Event Scheduler của MySQL để tự động xóa bảng sau một khoảng thời gian xác định.
Cú pháp tạo Event
CREATE EVENT yourEventName ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL x HOUR DO DROP TABLE IF EXISTS yourTableName;
Ví dụ: Xóa bảng sau 2 giờ
mysql> CREATE TABLE DemoTable (
-> StudentId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> StudentFirstName VARCHAR(20),
-> StudentLastName VARCHAR(20),
-> StudentAge INT
-> );
mysql> CREATE EVENT drop_table_event_after2HoursDemo
-> ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 2 HOUR
-> DO DROP TABLE IF EXISTS DemoTable;
Query OK, 0 rows affected (0.17 sec)
Yêu cầu tiên quyết
- Event Scheduler phải được bật:
SET GLOBAL event_scheduler = ON; - Kiểm tra:
SHOW VARIABLES LIKE 'event_scheduler'; - Quyền
EVENTtrên database
Quản lý Event
-- Xem các event SHOW EVENTS; -- Xóa event DROP EVENT drop_table_event_after2HoursDemo; -- Bật/tắt event ALTER EVENT drop_table_event_after2HoursDemo DISABLE; ALTER EVENT drop_table_event_after2HoursDemo ENABLE;
Lưu ý quan trọng
- Event chỉ chạy một lần (ONE TIME) với
AT timestamp - Để lặp lại, dùng
EVERY interval(ví dụ:EVERY 1 DAY) - Event bị xóa tự động sau khi thực thi (mặc định), dùng
ON COMPLETION PRESERVEđể giữ lại - Cảnh báo: Xóa bảng là thao tác phá hủy dữ liệu, hãy cân nhắc kỹ trước khi dùng trong production