【发布时间】:2015-11-11 07:33:02
【问题描述】:
我想尝试使用带有 pgadmin 的 PostgreSQL 进行事务隔离。首先,我在 BEGIN 中插入了一条新记录,但没有 COMMIT。
BEGIN;
INSERT INTO my_table(id,value) VALUES (1,'something');
//UNCOMMITTED
然后,我尝试读取未提交的数据
BEGIN TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
SELECT * FROM my_table
COMMIT;
但我找不到新记录。怎么了?
【问题讨论】:
-
Postgres 不支持
read uncommitted。 From the manual: "在 PostgreSQL 中,READ UNCOMMITTED 被视为 READ COMMITTED" -
你为什么想要这样做?处理隔离、并发、可见性等是数据库的用途。我有时想进行调试和数据恢复,但有一些设施可以做到这一点。我真正想要
READ UNCOMMITTED的唯一一次是尝试一个排队系统,因为这种咨询锁定效果很好。
标签: postgresql transaction-isolation