我有一个看起来像这样的存储过程:
p[1] == np.interp(p[0],x,y)
我得到了我想要的结果(来自返回查询语句),但最后的删除语句没有被执行,我用它来清理我的临时表。我怎样才能确保执行此操作?
答案 0 :(得分:0)
您可以使用:
return query
WITH cte AS (
delete from _contact_index_tmp tmp -- clear first
where tmp.query_id = _id
returning * -- return deleted data
)
select c.*
from cte tmp
left join contact c
on tmp.guid = c.contact_guid;
答案 1 :(得分:0)
当你在函数中“返回”某些东西时,它会结束该函数,因此不会执行剩余的代码。 您需要将要返回的数据保存在临时变量中,删除数据,然后将其返回。