Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Xóa bảng MySQL sau x giờ?

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 EVENT trê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