数据库事务隔离级别测试-postgresql

本文通过实例演示了PostgreSQL中的四种事务隔离级别:read-committed(默认级别)、read-uncommitted(不支持)、repeatable-read和serializable。在serializable级别下,事务会被转换为串行执行,以避免并发问题。
摘要由CSDN通过智能技术生成

1. read-committed (default 级别)

客户端A:
epmdb=> start transaction ;
START TRANSACTION
epmdb=> update t1.dbversion  set  value =1200  where dbversionid=1;
UPDATE 1
epmdb=> 


客户端B:
epmdb=> start  transaction 
epmdb-> ;
START TRANSACTION
epmdb=> select * from t1.dbversion ;
 dbversionid | value  | currentdataversion | targetdataversion 
-------------+--------+--------------------+-------------------
           1 | 110000 |                100 |                 1
(1 row)

客户端A修改后,结果不变:

epmdb=> select * from t1.dbversion ;
 dbversionid | value  | currentdataversion | targetdataversion 
-------------+--------+--------------------+-------------------
           1 | 110000 |                100 |                 1
A提交:
epmdb=> commit
epmdb-> ;
COMMIT


B查询:
epmdb=> select * from t1.dbversion ;
 dbversionid | value | currentdataversion | targetdataversion 
-------------+-------+--------------------+-------------------
           1 |  1200 |                100 |                 1
(1 row)



2.  read-uncommited(Postgresql 不支持)

修改隔离级别:修改后需要重新连接数据库 否则级别不会更改,重新连接也不行,需要分别修改A B的事务隔离级别,或者修改默认的事务隔离级别
 
不是设置问题,经过查阅doc,postgresq 不支持此级别
epmdb=> start transaction ;
START TRANSACTION
epmdb=>  set default_transaction_isolation
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值