千家信息网

PostgreSQL禁止的异象是什么

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章主要讲解了"PostgreSQL禁止的异象是什么",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"PostgreSQL禁止的异象是什么"吧!测试数
千家信息网最后更新 2026年11月01日PostgreSQL禁止的异象是什么

这篇文章主要讲解了"PostgreSQL禁止的异象是什么",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"PostgreSQL禁止的异象是什么"吧!

测试数据

数据表idx,在id列上有索引,数据库默认的隔离级别为可串行化

15:44:16 [local:/data/run/pg12]:5120 pg12@testdb=# \d+ idx                                         Table "public.idx" Column |       Type        | Collation | Nullable | Default | Storage  | Statstarget | Description--------+-------------------+-----------+----------+---------+----------+--------------+------------- id     | integer           |           |          |         | plain    |       | c1     | character varying |           |          |         | extended |       |Indexes:    "idx_id" btree (id)Access method: heap[pg12@localhost pg122db]$ grep 'isolation' postgresql.confdefault_transaction_isolation = 'SERIALIZABLE'

Write触发

操作序列如下:

时间点T1T2T3
t1begin;

t2select * from idx where id = 1;

t3
begin;
t4
select * from idx where id = 10000;
t5

begin;
t6

update idx set c1 = 'x' where id = 10000;
t7

commit;
t8
update idx set c1 = 'x' where id = 1;

session 2(T2)在执行update操作时会报错

-- session 215:46:52 [local:/data/run/pg12]:5120 pg12@testdb=#* update idx set c1 = 'x' where id = 1;ERROR:  could not serialize access due to read/write dependencies among transactionsDETAIL:  Reason code: Canceled on identification as a pivot, during write.HINT:  The transaction might succeed if retried.15:47:10 [local:/data/run/pg12]:5120 pg12@testdb=#!

Read触发

操作序列如下:

时间点T1T2T3
t1begin;

t2select * from idx where id = 1;

t3
begin;
t4
update idx set c1 = 'x1' where id = 1;
t5

begin;
t6

update idx set c1 = 'x' where id = 10000;
t7

commit;
t8
select * from idx where id = 10000;

session 2(T2)在执行select操作时会报错

15:54:41 [local:/data/run/pg12]:5120 pg12@testdb=#* select * from idx where id = 10000;ERROR:  could not serialize access due to read/write dependencies among transactionsDETAIL:  Reason code: Canceled on conflict out to pivot 423284, during read.HINT:  The transaction might succeed if retried.15:55:16 [local:/data/run/pg12]:5120 pg12@testdb=#!

commit触发

操作序列如下:

时间点T1T2
t1begin;
t2select * from idx where id = 1;
t3update tbl set c1 = 'x' where id = 10000;
t4
begin;
t5
select * from idx where id = 10000;
t6
update idx set c1 = 'x' where id = 1;
t7
commit;
t8commit;

T1执行commit的时候会报错:

16:07:50 [local:/data/run/pg12]:5120 pg12@testdb=#* commit;ERROR:  could not serialize access due to read/write dependencies among transactionsDETAIL:  Reason code: Canceled on identification as a pivot, during commit attempt.HINT:  The transaction might succeed if retried.

感谢各位的阅读,以上就是"PostgreSQL禁止的异象是什么"的内容了,经过本文的学习后,相信大家对PostgreSQL禁止的异象是什么这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!

序列 数据 时间 会报 学习 内容 就是 思路 情况 数据库 数据表 文章 时候 更多 知识 知识点 篇文章 索引 级别 跟着 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网高科技 互联网科技财经 合肥互联网科技公司 猪兼强互联网科技 互联网科技公司官网 顺玮阁互联网科技 互联网金融科技委员会 联恩商钥互联网科技有限公司 互联网科技热点资讯 阿里互联网科技公司 受益于互联网科技的高速发展 宝灵互联网科技有限公司 华夏互联网科技业 云南省自由互联网科技有限公司 山东大美朱楼互联网科技有限公司 西安有哪些互联网高科技企业 广州三三互联网科技有限公司 数字互联网科技有限公司 恒生科技指数 中概互联网 宁波允成互联网科技有限公司 互联网科技海报 湖南永感互联网科技有限公司 重生之互联网科技帝国 腾讯阿里互联网科技 深圳互联网络科技有限公司 博兴的互联网电子科技公司 黑科技闪耀互联网之光 智腾互联网科技有限公司 工业互联网等科技实现智能化赋能 株洲百竞科技的互联网营销顾问
0