Tim*_*lee 3 postgresql plpgsql
我正在尝试从EXECUTE中返回插入ID。这很好用:
CREATE OR REPLACE FUNCTION public.mytest2()
RETURNS INTEGER
LANGUAGE plpgsql
AS $function$
DECLARE
retval INTEGER;
RETURNING "DULid" INTO retval;';
BEGIN
INSERT INTO "dbUpdateLog" (notes) VALUES ($$hello$$) RETURNING "DULid" INTO retval;
RETURN retval;
END;
$function$
Run Code Online (Sandbox Code Playgroud)
但是,在EXECUTE中执行此操作时出现错误:
CREATE OR REPLACE FUNCTION public.mytest2()
RETURNS INTEGER
LANGUAGE plpgsql
AS $function$
DECLARE
retval INTEGER;
BEGIN
EXECUTE 'INSERT INTO "dbUpdateLog" (notes) VALUES ($$hello$$) RETURNING "DULid" INTO retval;';
RETURN retval;
END;
$function$
Run Code Online (Sandbox Code Playgroud)
我需要使用EXECUTE,因为查询将动态生成。这是错误:
ERROR: syntax error at or near "INTO"
LINE 1: ...Log" (notes) VALUES ($$hello$$) RETURNING "DULid" INTO retva...
Run Code Online (Sandbox Code Playgroud)
在EXECUTE中使用时,如何获得返回值(在这种情况下,尤其是插入ID)?
用途execute... into...
:
BEGIN
EXECUTE 'INSERT INTO "dbUpdateLog" (notes) VALUES ($$hello$$) RETURNING "DULid"'
INTO retval;
RETURN retval;
END;
Run Code Online (Sandbox Code Playgroud)
请参阅执行动态命令
归档时间: |
|
查看次数: |
4320 次 |
最近记录: |