postgres函数可以单独运行而不需要客户端等待结果吗?

时间:2013-07-17 13:10:08

标签: sql postgresql

我知道postgreSQL因为事务处理而在执行函数时会锁定一行。所以我尝试在表的最后一行解锁时触发一个函数。

我们举一个例子:

function_one()和function_two在PG中定义。

我的应用程序使用function_one()来添加数据或更新一些东西。完成后,所需的最后一行是解锁,如果需要,我可以启动另一个事务。所以在这一点上我希望postgreSQL在完成function_one()时启动function_two()。

感谢您的回答。

编辑:更多信息

我已经尝试在PG目录上设置一个触发器,但它没有用,因为我有一个视图所需的信息,你无法触发视图的数据。

2 个答案:

答案 0 :(得分:1)

因此,要释放锁定,您需要执行以下命令之一:

commit;
rollback;

所以如果你有这样的代码:

function_one();
commit;    
function_two();

那就是你要找的东西。从本质上讲,问题是以你指示何时释放锁定的方式来链接你的函数。

答案 1 :(得分:0)

根据您的语言,您可能希望使用可用的异步API。这在PHP,Perl和许多其他语言中都可用,但这是客户端问题,而不是服务器问题。

本质上由客户端决定是否等待函数返回。