小编Úca*_*Úca的帖子

在删除之前应该返回什么触发器

我正在尝试制作简单的触发函数(Postgresql),但在所有这些情况下我都收到相同的错误“函数没有返回任何行” (只是简单的示例):

新的:

UPDATE somewhere SET something = something - 1;
RETURN NEW;
Run Code Online (Sandbox Code Playgroud)

老的:

UPDATE somewhere SET something = something - 1;
RETURN OLD;
Run Code Online (Sandbox Code Playgroud)

当我“删除之前”调用此函数时应该返回什么?(“插入/更新后”效果很好)

Tyvm 的提示!

按要求提供完整代码: 功能:

CREATE OR REPLACE FUNCTION pictogram_frequency_on_delete()
RETURNS trigger AS
$BODY$
DECLARE

new_frequency RECORD;
target_unit RECORD;
current_row RECORD;
units_with_same_type RECORD;
what RECORD; 

BEGIN
SET search_path TO 'myScheme';

CASE TG_OP
WHEN 'DELETED' THEN what := OLD;
ELSE what:= OLD;
END CASE;

SELECT unit_type_uid INTO STRICT target_unit 
FROM unit 
WHERE unit_uid = what.unit_uid;

SELECT …
Run Code Online (Sandbox Code Playgroud)

postgresql database-trigger

4
推荐指数
1
解决办法
6248
查看次数

标签 统计

database-trigger ×1

postgresql ×1