如何解决PostgreSQL触发函数语法错误帮助请求
我一点也不知道为什么postgres抱怨'INSERT'之后的'INTO'这个词。有人知道吗? FWIW我只创建了代码主体,pgAdmin创建了页眉和页脚。
CREATE FUNCTION public.tf_test()
RETURNS trigger
LANGUAGE 'plpgsql'
NOT LEAKPROOF
AS $BODY$BEGIN
DECLARE targetid orderpayment.id%TYPE;
INSERT INTO
orderpayment(currencycode,tableorderid,payment,tip,paymentprocessor)
VALUES
(NEW.currency,NEW.orderid,NEW.amount,NEW.tip,1)
RETURNING id INTO targetid;
NEW.orderpayment = targetid;
RETURN NEW;
END$BODY$;
返回错误
ERROR: syntax error at or near "INTO"
LINE 8: INSERT INTO
^
CONTEXT: invalid type name "INTO
orderpayment(currencycode,paymentprocessor)
VALUES
(NEW.currency,1)
RETURNING id INTO targetid"
解决方法
<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/2.1.3/TweenMax.min.js" integrity="sha512-DkPsH9LzNzZaZjCszwKrooKwgjArJDiEjA5tTgr3YX4E6TYv93ICS8T41yFHJnnSmGpnf0Mvb5NhScYbwvhn2w==" crossorigin="anonymous"></script>
语句应在Declare
之前。因此正确的定义将如下所示:
begin
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。