---
title: "CREATE EVENT - OceanBase 数据库 V4.4.1 | OceanBase 文档中心"
description: CREATE EVENT 描述 该语句用于创建并安排新事件。 说明 对于 OceanBase 数据库 V4.2.5 版本，从 V4.2.5 BP2 版本开始 EVENT 支持执行 call 语句调用存储过程，设置开始时间或结束时间时支持了时间表达式和函数。 注意 EVENT 默认不开启,需要您执行 SET GLOBA…
---
切换语言

- 中文站 - 简体中文
- International - English
- 日本站 - 日本語

文档反馈![](https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*P8CuR4UJ_FkAAAAAAAAAAAAADiGDAQ/original) OceanBase 数据库分布式版 - V 4.4.1

# CREATE EVENT

更新时间：2025-11-22 18:35:02

[编辑](https://github.com/oceanbase/oceanbase-doc/edit/V4.4.1/zh-CN/700.reference/500.sql-reference/100.sql-syntax/200.common-tenant-of-mysql-mode/600.sql-statement-of-mysql-mode/2960.create-event-of-mysql-mode.md)  

## 描述

该语句用于创建并安排新事件。

#### 说明

对于 OceanBase 数据库 V4.2.5 版本，从 V4.2.5 BP2 版本开始 EVENT 支持执行 `call` 语句调用存储过程，设置开始时间或结束时间时支持了时间表达式和函数。

#### 注意

EVENT 默认不开启,需要您执行 `SET GLOBAL event_scheduler = 1;` 命令开启。更多关于该配置项的介绍请参考[event_scheduler](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000003979638)。

## 权限要求

执行该语句的用户需要拥有 `CREATE` 权限。有关 OceanBase 数据库权限的详细介绍，参见 [MySQL 模式下的权限分类](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000003980139)。

## 语法

```sql
CREATE
    [DEFINER = user]
    EVENT
    [IF NOT EXISTS]
    event_name
    ON SCHEDULE schedule
    [ON COMPLETION [NOT] PRESERVE]
    [ENABLE | DISABLE | DISABLE ON SLAVE] //默认创建完 ENABLE
    [COMMENT 'string']
    DO event_body;

schedule: {
    AT timestamp [+ INTERVAL interval] ...
  | EVERY interval
    [STARTS timestamp [+ INTERVAL interval] ...]
    [ENDS timestamp [+ INTERVAL interval] ...]
}

interval:
    quantity {YEAR | QUARTER | MONTH | DAY | HOUR | MINUTE |
              WEEK | SECOND | YEAR_MONTH | DAY_HOUR | DAY_MINUTE |
              DAY_SECOND | HOUR_MINUTE | HOUR_SECOND | MINUTE_SECOND}

```

## 使用说明与注意事项

- `EVERY interval` 不设置 `START TIME`，`END TIME` 会无限执行。
 - 对于重复 EVENT, 如果 EVENT 执行时间大于调度间隔，会出现同一时间多个 EVENT，需要用户自己保证执行时间小于调度间隔。
 - 不能设置最大执行时间（一次性 EVENT 的最大执行时间 24 小时）。
 - 不建议通过一个 EVENT 创建另一个 EVENT。
 - 已经开始的 EVENT 不允许再修改调度计划。
 - 已经开始的 EVENT 不应该再修改 `event_name`，否则可能导致无法正确结束。
 - 如果该 EVENT 连续执行失败 16 次就会停止运行。

## 参数说明

| 参数 | 描述 |
| --- | --- |
| IF NOT EXISTS | 用于指示如果事件已经存在，则不进行创建。创建事件时，如果事件存在且没有指定 `IF NOT EXISTS`，则会报错。 |
| event_name | 指定待创建事件的名称。 |
| DEFINER | 可选参数，指定执行事件的用户。目前不支持自定义 user，默认为当前 user。 |
| ON SCHEDULE schedule | 定义事件执行的时间和频率。支持时间戳 + INTERVAL，如 “2020-12-01 00:00:00” + INTERVAL 1 DAY 时间必须为整数，时间单位支持 YEAR，MONTH，DAY，HOUR，MINUTE，SECOND。 |
| ON COMPLETION [NOT] PRESERVE | 定义当事件完成执行后是否保留事件。默认不保留（NOT PRESERVE），即事件执行完毕后自动删除。 |
| ENABLE、DISABLE、DISABLE ON SLAVE | 定义事件的状态。默认创建完 `ENABLE`，表示创建事件后立即启用。`DISABLE` 创建事件后禁用，事件不会自动执行直到被手动启用。`DISABLE ON SLAVE` 仅在复制的环境下使用，事件在服务器上不会执行。 |
| COMMENT 'string' | 可选参数，为事件添加注释。 |
| DO event_body | 定义要执行的 SQL 语句。目前支持单条 SQL 语句，`BEGIN END` 多条 SQL 语句。 |

## 示例

```shell
obclient> CREATE EVENT myevent
    ON SCHEDULE AT '2024-07-01 00:00:00' + INTERVAL 1 HOUR
    DO
      UPDATE myschema.mytable SET mycol = mycol + 1;

```

 上一篇 下一篇 ![有帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*y6ocSqN8cqsAAAAAAAAAAAAAARQnAQ)![无帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*BG9IQJyLHF8AAAAAAAAAAAAAARQnAQ)![反馈](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*eTWdQKCRKHwAAAAAAAAAAAAAARQnAQ)[AI](https://www.oceanbase.com/obi) 咨询热线
