存储过程是否在Postgres中的数据库事务中运行?
|
如果存储过程在中间失败,那么从SP开始的那一点的更改是否隐式回滚,或者我们是否必须编写任何显式代码以确保SP仅在数据库事务中运行? 解决方法严格来说,Postgres目前(不包括版本10)具有ANSI标准中定义的“存储过程”.一切都是通过“函数”完成的,它们提供了与其他RDBMS提供的存储过程相同的功能(和更多).主要区别在于交易处理.> What are the differences between “Stored Procedures” and “Stored Functions”? Postgres 11终于推出了真正的stored procedures: > When to use stored procedure / user-defined function? Functions在Postgres中是原子的,并且在自己的事务中自动运行,除非在外部事务中调用.它们总是在单个事务中运行,并且完全成功或失败.因此,无法在函数内开始或提交事务.并且不允许在事务块中运行的VACUUM或CREATE INDEX CONCURRENTLY等命令. Per documentation on PL/pgSQL:
Error handling:
有特殊例外,包括但不限于: >写入日志文件的数据
>准备好的陈述 > SQL Fiddle演示 > dblink调用(或类似) > Does Postgres support nested or autonomous transactions? (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 单个select语句实现MySQL查询统计次数
- win8.1安装mysql5.6时遇到问题解决方案
- sql-server-2008 – 将数据库从SQL Server 2000复制到SQL S
- 关于 SQL Server ErrorLog 错误日志说明
- sql-server – SQL Server PDF全文搜索无法在FileStream PD
- sql – Oracle中“||”运算符和concat函数之间有什么区别?
- 每个组的SQL SELECT TOP 1
- SQL Server SQL 合并多行记录的方法总汇
- 数据库设计 – 在关系数据库中实现全局唯一标识符的优点/缺
- sql-server – 什么是“部分匹配索引”?
