【发布时间】:2016-11-03 10:07:11
【问题描述】:
当行更新触发器将更改该行时,我创建了一个触发器。当我更新列时出现错误。我该如何解决?
错误:超出堆栈深度限制 提示:在确保平台的堆栈深度限制足够之后,增加配置参数“max_stack_depth”(目前为2048kB)。
CREATE OR REPLACE FUNCTION ynt_call()
RETURNS TRIGGER AS $$
BEGIN
IF TG_OP = 'UPDATE' THEN
UPDATE ynt.a_test SET date_time = now();
END IF;
RETURN NEW;
END;
$$ language 'plpgsql';
CREATE TRIGGER update_call AFTER UPDATE ON ynt.a_test FOR EACH ROW EXECUTE PROCEDURE ynt_call();
【问题讨论】:
-
看起来您处于无限循环中。要更改触发器中的值,请使用 new 和 old 关键字。
-
您应该仔细阅读手册中的示例:postgresql.org/docs/current/static/…
标签: postgresql