postgreSQL pl/python 如何获取查询的 RETURNING 结果?
在这个(非常简化的)查询中,怎么才能从 RETURNING 中返回 myfile_key 呢?
CREATE OR REPLACE FUNCTION myfunction (src int, OUT result int) AS $$
plan = plpy.prepare("INSERT INTO myfile VALUES (nextval('seq_myfile'),$1,$2)
RETURNING myfile_key", ["integer","integer"] )
$$ LANGUAGE plpythonu;
(这里插入的第一个字段是 myfile_key)
这段代码没有把值返回到输出中,我也没法像标准的 Python 结果那样查询它,像这样:
result = rv[0]["myfile_key"]
1 个回答
0
我想你的代码里缺少一个对 plpy.execute
的调用。你说得对,可以像 rv[0]["myfile_key"]
这样访问 RETURNING
列。不过,问题在于在 PL/Python 中给 OUT
参数赋值的部分不太对。我建议你把函数改写一下,不要用 OUT
参数,而是用普通的 return
语句。