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()
