VastbaseG100

基于openGauss内核开发的企业级关系型数据库。

Menu

DML 触发器概述

DML 触发器允许用户在特定的数据库事件发生时,自动执行一些预定义的函数。这些事件包括 INSERT、UPDATE、DELETE、TRUNCATE 等操作。触发器可以帮助实现复杂的业务逻辑,保证数据的完整性和一致性。

在创建触发器时,用户需要定义触发事件(例如INSERT、UPDATE 或 DELETE )和触发类型(例如 BEFORE 或 AFTER)。当这个事件在这个时间发生时,就会执行触发器中定义的函数。

触发器的主要优点是可以自动化一些常见的数据库操作,简化了手动执行这些操作的繁琐。此外,触发器还可以用来实现复杂的数据完整性规则。

兼容性

Vastbase 数据库不同兼容模式下创建触发器的兼容情况不同,下面仅列出不同兼容模式下支持的功能列表。有关不同兼容模式的详细支持情况和语法参考,请参见《兼容性手册》。

  • Oracle 兼容性:

    • 支持在全局临时表上创建触发器。

    • 支持在创建触发器的语句中包含触发器执行的PL/pgSQL块。

  • MySQL 兼容性:

    • 支持使用DEFINER关键字。

    • 创建时支持使用IF NOT EXISTS判断触发器是否已存在。

    • 支持trigger_order中的{FOLLOWS|PRECEDES}来控制触发器的优先触发顺序。

    • 支持在trigger_body部分直接通过在begin…end之间书写代码块。

    • 支持使用LEAVE语法。

    • 支持用户使用delimiter定义分隔符。在创建触发器SQL末尾可以不使用固定的结尾,整个触发器的语法以delimiter定义的结束符作为结束。