# 事件调度器

URL: https://caijiao.org/mariadb/program/trigger/event
Source: docs/mariadb/program/trigger/event.md
Description: 本节介绍 MariaDB 事件调度器的使用方法，帮助用户定时自动执行数据库任务，实现周期性维护和自动化管理。

## 1. 什么是事件调度器

事件调度器（Event Scheduler）是 MariaDB 的定时任务功能，允许用户预设 SQL 语句在指定时间或周期自动执行，用于自动化维护、数据备份、统计等任务。

## 2. 启用事件调度器

默认情况下事件调度器可能未启用，可以通过以下命令开启：

```sql
SET GLOBAL event_scheduler = ON;
````

## 3. 查看事件调度器状态

```sql
SHOW VARIABLES LIKE 'event_scheduler';
```

## 4. 创建事件语法

```sql
CREATE EVENT event_name
ON SCHEDULE schedule
DO
    event_body;
```

* `schedule`：指定事件执行时间，如 `EVERY 1 DAY`、`AT CURRENT_TIMESTAMP + INTERVAL 1 HOUR` 等。

## 5. 示例：每小时清理过期数据

```sql
CREATE EVENT cleanup_expired_sessions
ON SCHEDULE EVERY 1 HOUR
DO
    DELETE FROM sessions WHERE expires_at < NOW();
```

## 6. 管理事件

* 启用事件：

```sql
ALTER EVENT event_name ENABLE;
```

* 禁用事件：

```sql
ALTER EVENT event_name DISABLE;
```

* 删除事件：

```sql
DROP EVENT event_name;
```

## 7. 查看已创建的事件

```sql
SHOW EVENTS;
```

---

事件调度器为 MariaDB 提供强大的定时自动执行功能，适合自动维护和定期任务管理。
