OB上支持触发器吗?什么场景下才会要写触发器呢

OB上支持触发器吗?什么场景下才会要写触发器呢

1 个赞

OceanBase支持触发器功能,主要用于数据库表操作(如INSERT、UPDATE、DELETE)的自动响应。 ‌12

触发器类型

OceanBase支持以下触发器类型:

  • 行级触发器‌:在表受操作时逐行触发,适用于实体表。 ‌1
  • 语句级触发器‌:无论操作多少行数据均触发一次,适用于实体表。 ‌12
  • INSTEAD OF 触发器‌:用于视图,可修改无法直接修改的视图。 ‌1
  • 组合DML触发器‌:支持在多个时间点触发,适用于表或视图。 ‌1

触发时机

可设置为在操作‌‌或‌‌触发,例如:

  • BEFORE INSERT/UPDATE/DELETE‌:在插入/更新/删除前执行。
  • AFTER INSERT/UPDATE/DELETE‌:在操作完成后执行。 ‌23

使用限制

  • 触发器内部对基表的操作需谨慎,可能引发递归调用或死锁问题。 ‌3
  • 创建触发器需具备基表操作权限及CREATE TRIGGER权限。 ‌24