Postgresql事务测试

参考一个事务中 可以查询自己未提交的数据吗_最详细MySQL事务隔离级别及原理讲解!(二)-CSDN博客

一个事务中 可以查询自己未提交的数据吗_趣说数据库事务隔离级别与原理_weixin_39747293的博客-CSDN博客

【MySql:当前读与快照读】_当前读和快照读_QuietThinking的博客-CSDN博客

PostgreSQL实战之事务与并发控制(二)_postgresql 默认事务级别_auspicious航的博客-CSDN博客

当前事务默认级别:

SELECT current_setting ('default_transaction_isolation')

 结果:read committed (读已提交)

一个事务的sql:

能读到当前事务修改的数据

Begin transaction;
-- SELECT * FROM "budget_base_config";
SELECT sum(deadline) FROM "budget_base_config";
update "budget_base_config" set deadline=12 where period='2023-07';
-- SELECT * FROM "budget_base_config";
SELECT sum(deadline) FROM "budget_base_config";
commit;

结果   123    24

read committed级别能解决脏读问题。其他事务未提交的数据无法读取

2个事务

事务1未提交

Begin transaction;
SELECT sum(deadline) FROM "budget_base_config";
update "budget_base_config" set deadline=11 where period='2023-07';
SELECT sum(deadline) FROM "budget_base_config";
-- commit;

结果121   21

事务2查询之前的数据

Begin transaction;
-- SELECT * FROM "budget_base_config";
SELECT sum(deadline) FROM "budget_base_config";

结果121

但是read committed是不可重复读的,一个事务中读取的2次数据的时间间隔里因为另一个事务的提交,导致前后2次数据读取不一致

事务一执行
Begin transaction;
SELECT sum(deadline) FROM "budget_base_config";结果121事务二执行
Begin transaction;
update "budget_base_config" set deadline=11111 where period='2023-07';
commit;事务一再执行
SELECT sum(deadline) FROM "budget_base_config";结果
11121

设置当前会话的隔里级别为REPEATABLE READ(可重复读)

事务一执行
START TRANSACTION ISOLATION LEVEL REPEATABLE READ;
SHOW transaction_isolation;
Begin transaction;
SELECT sum(deadline) FROM "budget_base_config";结果11121事务二执行
Begin transaction;
update "budget_base_config" set deadline=1 where period='2023-07';
SELECT sum(deadline) FROM "budget_base_config";
commit;结果11事务一执行
SELECT sum(deadline) FROM "budget_base_config";结果11121

可见现在事务一前后读取数据一致

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/140121.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

eNSP基础网络学习-v02

一、eNSP 1.什么是eNSP eNSP(Enterprise Network Simulation Platform)是一款由华为提供的免费的、可扩展的、图形化操作的网络仿真工具平台,主要对企业网络路由器、交换机进行软件仿真,完美呈现真实设备实景,支持大型网络模拟,让…

stm32之看门狗

STM32 有两个看门狗,独立看门狗和窗口看门狗,独立看门狗又称宠物狗,窗 口看门狗又称警犬。可用来检测和解决由软件错误引起的故障。两个看门狗的原理都是当计数器达到给定的超时值时,产生系统复位,对于窗口型看门狗同…

VMware中安装Ubuntu(2023年)

Ubuntu安装 前言 安装过程中电脑发热时正常的,这个还是稍微有点点大;下载的版本根据自己的喜好来,新版本肯定要比旧版本占用的空间更大,大家自行选择;仅供学习使用的话可以下载成熟稳定的版本,例如16、18…

《Kubernetes部署篇:Ubuntu20.04基于containerd部署kubernetes1.25.14集群(多主多从)》

一、架构图 如下图所示: 二、环境信息 1、资源下载基于containerd部署容器版kubernetes1.25.14集群资源合集 2、部署规划主机名K8S版本系统版本内核版本IP地址备注k8s-master-121.25.14Ubuntu 20.04.5 LTS5.15.0-69-generic192.168.1.12master节点 + etcd节点k8s-master-131.…

摸鱼也摸鱼之在线数独自动求解

背景 在发现被老板CPU之后,大家想做的基本上都是摸鱼,像我这种没什么手法的人不可能摸鱼打MOBA游戏,所以只能选择数独这种对时间要求不怎么急促的小游戏。然而,有时候搞半天才发现从一开始就错了,这让我很苦恼&#x…

java多线程学习笔记一

一、线程的概述 1.1 线程的相关概念 1.1.1 进程(Process) 进程(Process)是计算机的程序关于某数据集合上的一次运行活动,是操作系统进行资源分配与调度的基本单位。 可以把进程简单的理解为操作系统中正在有运行的一…

Java由浅入深理解线程池设计和原理

目录 1 线程1.1 什么是线程?什么是进程?1.2 java中线程的实现方式有几种?1.3 线程的生命周期是什么? 2 线程存在的问题2.1 一个线程只能执行一个任务2.2 线程执行完后销毁,无法复用2.3 线程过多,导致JVM宕机 3 初识线程池3.1 了解J.U.C3.2 线…

Webpack监视文件修改,自动重新打包文件

方法一:使用watch监视文件变化 在终端中输入以下指令: npx webpack --watch 我们使用这种方法监听文件变化时只会监听我们计算机本地的文件变化,在开发场景中我们的项目是要部署到服务器中的,因此这种方式并不推荐。 方法二&…

【C语言】指针经典笔试题(上)

C语言的一大重头戏就是指针。 对于指针有一些认识: 1.指针是存放变量的地址,一般说的指针和指针变量是一个概念。 2.地址的单位是字节,大小在不同编译器环境下有所不同,32位机器是4个字节,64位机器是8个字节。 3.数组名…

购物H5商城架构运维之路

一、引言 公司属于旅游行业,需要将旅游,酒店,购物,聚合到线上商城。通过对会员数据进行聚合,形成大会员系统,从而提供统一的对客窗口。 二、业务场景 围绕更加有效地获取用户,提升用户的LTV&a…

linux进程杀不死

项目场景: 虚拟机 问题描述 linux进程杀不死 无反应 原因分析: 进程僵死zombie 解决方案: 进proc或者find命令找到进程所在地址 cat status查看进程杀死子进程

2023 第十二届中国智能产业高峰论坛 - 文档大模型的未来展望

目录 前言文档图像分析识别与理解中的技术挑战 文档图像分析识别与理解的研究主题文档图像分析与预处理文档解析与识别版面分析与还原文档信息抽取与理解AI安全知识化&存储检索和管理 多模态大模型在文档图像处理中的应用多模态的GPT-4在文档图像上的表现多模态的Google Ba…

每日一题~将有序数组转换为二叉搜索树

原题链接:108. 将有序数组转换为二叉搜索树 - 力扣(LeetCode) 题目描述: 思路分析: 今天这道题比较简单,我们看一下数组和树之间的联系很容易就能发现规律。 通过简单观察我们发现,位于数组中…

React 全栈体系(九)

第五章 React 路由 一、相关理解 1. SPA 的理解 单页 Web 应用(single page web application,SPA)。整个应用只有一个完整的页面。点击页面中的链接不会刷新页面,只会做页面的局部更新。数据都需要通过 ajax 请求获取, 并在前端…

蓝桥杯 题库 简单 每日十题 day7

01 啤酒和饮料 题目描述 本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。啤酒每罐2.3元,饮料每罐1.9元。小明买了若干啤酒和饮料,一共花了82.3元。我们还知道他买的啤酒比饮料的数量少,请你…

5.2 磁盘CRC32完整性检测

CRC校验技术是用于检测数据传输或存储过程中是否出现了错误的一种方法,校验算法可以通过计算应用与数据的循环冗余校验(CRC)检验值来检测任何数据损坏。通过运用本校验技术我们可以实现对特定内存区域以及磁盘文件进行完整性检测,…

【Java Web】CSS

目录 1.CSS(Cascading Style Sheets) 层叠样式表 2.标签 1.注释 2.三种书写样式 1.内部样式 2.内联样式 3.外部样式 3.CSS选择器 (1)标签选择器 (2)类选择器 (3)ID选择器 复合选择器 &#xf…

网络知识——局域网和交换机

定义: 局域网(Local Area Network,简称LAN)是指在某一区域内由多台计算机互联成的计算机组。广域网(Wide Area Network,简称WAN)是指跨越单个建筑物或大型园区,连接分布在特定地理区…