From 384bee63c938863d815777d5122b009ec85a6d87 Mon Sep 17 00:00:00 2001 From: lukeman Date: Mon, 24 Feb 2025 18:52:56 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E8=B5=84=E6=96=99=E8=AF=B4?= =?UTF-8?q?=E6=98=8E=E8=A7=A6=E5=8F=91=E5=99=A8=E5=87=BD=E6=95=B0=E7=9A=84?= =?UTF-8?q?=E8=BF=94=E5=9B=9E=E5=80=BC=E8=A7=84=E5=88=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../zh/docs/Developerguide/CREATE-TRIGGER.md | 11 +++++++++++ content/zh/docs/Developerguide/CREATE-TRIGGER.md | 11 +++++++++++ 2 files changed, 22 insertions(+) diff --git a/content/docs-lite/zh/docs/Developerguide/CREATE-TRIGGER.md b/content/docs-lite/zh/docs/Developerguide/CREATE-TRIGGER.md index dfa8d02b8..129619050 100644 --- a/content/docs-lite/zh/docs/Developerguide/CREATE-TRIGGER.md +++ b/content/docs-lite/zh/docs/Developerguide/CREATE-TRIGGER.md @@ -262,6 +262,17 @@ CREATE [ CONSTRAINT ] TRIGGER trigger_name { BEFORE | AFTER | INSTEAD OF } { eve +**触发器函数的返回值规则如下:** +- 语句级触发器:由语句级触发器调用的触发器函数应始终返回 NULL。 +- 行级触发器: + - BEFORE 触发器: + - 返回 NULL,以跳过对当前行的操作(INTERT、UPDATE或DELETE)。注意:如上表2所述,变量NEW对DELETE为空,变量OLD对INTERT为空。 + - 对于行级 INSERT 和 UPDATE 触发器,返回的行将成为要插入或替换正在更新的行,允许触发器函数修改该行。 + - 不希望产生上述两种行为的行级 BEFORE 触发器,需返回传入的同一行(INSERT 和 UPDATE 触发器的 NEW 行,DELETE 触发器的 OLD 行)。 + - INSTEAD OF 触发器: + - 返回 NULL,表示未修改视图底层基表的数据。 + - 返回传入的视图行(INSERT 和 UPDATE 操作的 NEW 行,DELETE 操作的 OLD 行),非空返回值表示触发器在视图中执行了必要的数据修改,会使受命令影响的行数计数增加。对于 INSERT 和 UPDATE 操作,触发器可在返回 NEW 行前对其进行修改,以改变 INSERT RETURNING 或 UPDATE RETURNING 返回的数据。 + - AFTER 触发器:返回值会被忽略,可返回 NULL。 ## 示例 diff --git a/content/zh/docs/Developerguide/CREATE-TRIGGER.md b/content/zh/docs/Developerguide/CREATE-TRIGGER.md index 48b1a3baa..49b5ad27b 100644 --- a/content/zh/docs/Developerguide/CREATE-TRIGGER.md +++ b/content/zh/docs/Developerguide/CREATE-TRIGGER.md @@ -265,6 +265,17 @@ CREATE [ CONSTRAINT ] TRIGGER trigger_name { BEFORE | AFTER | INSTEAD OF } { eve +**触发器函数的返回值规则如下:** +- 语句级触发器:由语句级触发器调用的触发器函数应始终返回 NULL。 +- 行级触发器: + - BEFORE 触发器: + - 返回 NULL,以跳过对当前行的操作(INTERT、UPDATE或DELETE)。注意:如上表2所述,变量NEW对DELETE为空,变量OLD对INTERT为空。 + - 对于行级 INSERT 和 UPDATE 触发器,返回的行将成为要插入或替换正在更新的行,允许触发器函数修改该行。 + - 不希望产生上述两种行为的行级 BEFORE 触发器,需返回传入的同一行(INSERT 和 UPDATE 触发器的 NEW 行,DELETE 触发器的 OLD 行)。 + - INSTEAD OF 触发器: + - 返回 NULL,表示未修改视图底层基表的数据。 + - 返回传入的视图行(INSERT 和 UPDATE 操作的 NEW 行,DELETE 操作的 OLD 行),非空返回值表示触发器在视图中执行了必要的数据修改,会使受命令影响的行数计数增加。对于 INSERT 和 UPDATE 操作,触发器可在返回 NEW 行前对其进行修改,以改变 INSERT RETURNING 或 UPDATE RETURNING 返回的数据。 + - AFTER 触发器:返回值会被忽略,可返回 NULL。 ## 示例 -- Gitee