gpt4 book ai didi

postgresql - 表的另一个缺失的 FROM 子句条目

转载 作者:行者123 更新时间:2023-11-29 12:05:07 26 4
gpt4 key购买 nike

我是 postgresql 的新手,我遇到了触发器的问题,它应该只从序列中获取值。如果我理解正确,(尝试了几个例子)在这种情况下你不需要 FROM 子句(就像在 ORACLE 中你会添加'from dual')。

触发器看起来像这样:

CREATE OR REPLACE FUNCTION public.trigger_fct_name_id_autoinc()
RETURNS trigger AS
$$
BEGIN
SELECT "NAME_ID_SEQ".NEXTVAL INTO NEW."ID" ;
RETURN NEW;
END
$$
LANGUAGE 'plpgsql';

当然,我做错了什么。我得到的错误是:

ERROR: missing FROM-clause entry for table "NAME_ID_SEQ" Where: PL/pgSQL function trigger_fct_name_id_autoinc() line 3 at SQL statement

试图在网上找到一些答案,但要么没有答案,要么我对 postgresql 的理解不够深入,无法理解人们写的内容。在大多数主题中,答案都涉及别名,但我认为这里不是这种情况。

我应该以某种方式添加 FROM 子句,还是它只是一个不同问题的标志?

最佳答案

您正在使用 Oracle 语法从序列中获取下一个值。使用 Postgres 的 nextval :

SELECT nextval('NAME_ID_SEQ') INTO NEW."ID" ;

关于postgresql - 表的另一个缺失的 FROM 子句条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27270643/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com