PostgreSQL:存储过程是否遵循外层事务的search_path与回滚规则?
问题1解答
会遵循。SET LOCAL设置的search_path作用域覆盖当前整个事务,包括事务内部调用的存储过程,除非存储过程内部显式执行了修改search_path的语句,才会覆盖这个设置。
问题2解答
不会回滚。PostgreSQL中存储过程内部的BEGIN和COMMIT属于自治事务,一旦存储过程内部执行了COMMIT,其内部的操作就会被持久化,不受外层事务状态的影响。外层事务中MYTABLE1的更新失败导致回滚时,只会撤销外层事务内的操作,存储过程里已经提交的操作不会被回滚。
内容的提问来源于stack exchange,提问作者mleko
相关产品推荐
相关产品推荐

