SET TRANSACTION
是一个用于设置事务特征的事务命令。
SET TRANSACTION
添加于 PostgreSQL 6.5。
用法
SET TRANSACTION
可以执行以下三种不同的任务
- 设置当前事务模式
- 设置会话事务模式
- 设置会话快照
更改历史记录
- PostgreSQL 9.4
- 在事务块之外执行时,将发出
WARNING
(而不是ERROR
)(提交 a6542a4b)
- 在事务块之外执行时,将发出
- PostgreSQL 7.3
READ ONLY
和READ WRITE
语法已添加(提交 90edb265)
- PostgreSQL 6.5
- 已添加(初始提交 3498d878)
示例
SET TRANSACTION
的基本执行示例
postgres=# BEGIN; BEGIN postgres=*# SET TRANSACTION READ ONLY; SET postgres=*# INSERT INTO foo VALUES(1); ERROR: cannot execute INSERT in a read-only transaction
SET TRANSACTION
仅在事务正在进行时有效
postgres=# SET TRANSACTION READ ONLY; WARNING: SET TRANSACTION can only be used in transaction blocks SET
参考文献
- PostgreSQL 文档: SET TRANSACTION
另请参阅
default_transaction_isolation, default_transaction_deferrable, default_transaction_read_only, pg_export_snapshot()