此条目涉及一个已弃用的PostgreSQL功能,在未来的版本中可能会停止支持。
txid_current_if_assigned()
是一个系统函数,如果分配了事务ID,则返回当前事务ID。
txid_current_if_assigned()
在 PostgreSQL 8.3 中添加。
用法
txid_current_if_assigned () → bigint
txid_current_if_assigned()
返回当前事务ID作为 bigint
类型。请注意,在当前事务中执行非读取查询之前,不会分配新的事务ID。
在 PostgreSQL 13 中引入了 xid8
数据类型后,此函数已弃用,并由 pg_current_xact_id_if_assigned()
取代。
更改历史记录
- PostgreSQL 13
- 标记为已弃用 (提交 4c04be9b)
- PostgreSQL 8.3
- 添加 (提交 1f92630f)
示例
txid_current_if_assigned()
的基本用法示例 - 在事务对数据库进行更改之前,事务将没有事务ID
postgres=# BEGIN; BEGIN postgres=*# SELECT txid_current_if_assigned(); txid_current_if_assigned -------------------------- (1 row) postgres=*# SELECT 1; ?column? ---------- 1 (1 row) postgres=*# SELECT txid_current_if_assigned(); txid_current_if_assigned -------------------------- (1 row) Time: 0.986 ms postgres=*# INSERT INTO foo VALUES (1); INSERT 0 1 postgres=*# SELECT txid_current_if_assigned(); txid_current_if_assigned -------------------------- 742 (1 row)
参考文献
- PostgreSQL 文档: 已弃用的事务ID和快照信息函数