【数据库原理实验(openGauss)】事务与并发控制
事务与并发控制
文章目录
- 事务与并发控制
- 一、事务
- (1)事务的ACID特性
- (2)事务管理
- (3)事务实例
- 1.未提交的事务
- 2.已提交的事务
- 二、并发控制
- (1)加锁语法
- (2)加锁实例
一、事务
(1)事务的ACID特性
原子性(Atomicity):原子事务是一系列不可分割的数据库操作。在事务完成之后,这些操作要么全部发生,要么全部不发生。
一致性(Consistency):事务结束后,数据库处于一致状态,保留数据完整性。
隔离性(Isolation):事务之间不能相互干扰。
持久性(Durability):即使发生崩溃和失败,成功完成(提交)的事务效果持久保存。
(2)事务管理
openGauss数据库支持的事务管理命令有启动、设置、提交、回滚事务。
启动事务(START TRANSACTION | BEGIN)
START TRANSACTION[ {ISOLATION LEVEL {READ COMMITTED | READ UNCOMMITTED | SERIALIZABLE | REPEATABLE READ} | {READ WRITE | READ ONLY}} [, ...] ];
设置事务(SET TRANSACTION)
{ SET [ LOCAL ] TRANSACTION | SET SESSION CHARACTERISTICS AS TRANSACTION } { ISOLATION LEVEL {READ COMMITTED | READ UNCOMMITTED | SERIALIZABLE | REPEATABLE READ} | {READ WRITE | READ ONLY}} [, ...];
提交事务
{ COMMIT | END } [ WORK | TRANSACTION ];
回滚事务
ROLLBACK [ WORK | TRANSACTION ];
(3)事务实例
1.未提交的事务
启动事务
START TRANSACTION;
插入数据
INSERT INTO Students VALUES ('201905001', 'BK','男', '2000-01-01','2019',' 计算机','CS');
SELECT * FROM Students;
回滚事务
ROLLBACK;
SELECT * FROM Students;
2.已提交的事务
启动事务
START TRANSACTION;
插入数据
INSERT INTO Students VALUES ('201905001', 'BK','男', '2000-01-01','2019',' 计算机','CS');
提交事务
COMMIT TRANSACTION;
SELECT * FROM Students;
二、并发控制
(1)加锁语法
LOCK [ TABLE ] {[ ONLY ] name [, ...]| {name [ * ]} [, ...]}[ IN {ACCESS SHARE | ROW SHARE | ROW EXCLUSIVE | SHARE UPDATE EXCLUSIVE | SHARE | SHARE ROW EXCLUSIVE | EXCLUSIVE | ACCESS EXCLUSIVE} MODE ][ NOWAIT ];
(2)加锁实例
创建测试表
CREATE TABLE TestLock(test CHAR(5));
开启事务
START TRANSACTION;
加锁
LOCK TestLock;
查看所有锁
SELECT * FROM pg_locks ;
提交事务
COMMIT TRANSACTION;
再次查看所有锁
SELECT * FROM pg_locks ;
【数据库原理实验(openGauss)】事务与并发控制相关推荐
- 【数据库原理实验(openGauss)】实验报告
<数据库系统原理实验>报告 文章目录 <数据库系统原理实验>报告 一.实验课程性质和教学目标 二.实验课程教学基本要求 三.实验教学内容 实验一 认识DBMS系统 (一)实验目 ...
- 【数据库原理实验(openGauss)】金融场景化实验
金融场景化实验 文章目录 金融场景化实验 一.金融数据模型 1.E-R图 2.关系模式 3.物理模型 Client(客户)表 bank_card(银行卡)表 finances_product(理财产品 ...
- 【数据库原理实验(openGauss)】交互式SQL语句
交互式SQL语句 文章目录 交互式SQL语句 一.数据准备 (1)向Departments中写入数据 (2)向Teachers中写入数据 (3)向Students中写入数据 (4)向Courses中写 ...
- 【数据库原理实验(openGauss)】 使用JDBC连接数据库
使用JDBC连接数据库 文章目录 使用JDBC连接数据库 一.准备连接环境 1.修改数据库的pg_hba.conf文件 2.登陆数据库授权退出 3.修改数据库监听地址 4.下载Java驱动包导入工具 ...
- 【数据库原理实验(openGauss)】数据库的备份与恢复
数据库的备份与恢复 文章目录 数据库的备份与恢复 一.物理备份和恢复 实验准备: (1)物理备份 (2)物理备份恢复 二.逻辑备份和恢复 实验准备: (1)gs_dump备份 1.gs_dump备份示 ...
- 【数据库原理实验(openGauss)】视图
视图 文章目录 视图 一.创建视图 二.基于视图的查询 三.基于视图的更新 四.删除视图 五.对视图的理解 一.创建视图 CREATE VIEW CS_Students AS SELECT Sno, ...
- 【数据库原理实验(openGauss)】认识DBMS系统
认识DBMS系统(openGauss) 文章目录 认识DBMS系统(openGauss) 一.openGauss安装目录 (1)集群openGauss安装目录 (2)集群openGauss数据目录 ( ...
- 【数据库原理实验(openGauss)】 安全性控制
安全性控制 文章目录 安全性控制 一.用户及角色 (1)用户 (2)角色 二.权限设置及回收 1.将系统权限授权给用户或者角色 2.将数据库对象授权给角色或用户 3.将用户或者角色的权限授权给其他用户 ...
- 【数据库原理实验(openGauss)】创建数据库、表和索引
创建数据库.表和索引 文章目录 创建数据库.表和索引 一.创建数据库 二.创建与删除模式 三.创建与修改表 (1)创建表 (2)修改表 四.创建与删除索引 (1)创建索引 (2)删除索引 一.创建数据 ...
最新文章
- 浅谈Chatbot的架构模型和响应机制
- 适用于WIFI Hacking的无线网卡推荐
- 【MM模块】 Goods Issue 发货
- 11 | 排序(上):为什么插入排序比冒泡排序更受欢迎?
- tomcat的url-pattern的源码分析
- 买硬盘需要知道哪些知识?
- 基于VHDL的交通灯设计(实训要求)
- 小米mix2的Android9好久更新,官方确认 小米6/MIX2/Note 3升级Android 9
- 请设置注册表项HKLMSoftwareMicrosoft.NETFrameworkInstallRoot,指向.NET Framework安装位置(写给我自己备份的免得以后找不到)
- 百度刘捷:数据驱动,AI赋能助力城市数字化转型
- 过滤树形结构数组的方法
- ESP32开发环境的搭建和 ESP-IDF支持以下调试方法
- vue中enter回车键事件
- [蓝桥杯]校内培训交流会总结
- 程序员常见英文缩写及其意义
- 宝宝小暑吃什么,祛湿健脾,温补阳气
- Java序列化与反序列化(一)
- 查看服务器的文件夹,远程查看服务器文件夹内的文件夹
- 打灰太狼oc核心代码实现
- 数据库应用——MySQL函数
热门文章
- 目标检测相关概念:IOU,precision, recall, AP, mAP
- linux动态库路径生效,Linux下如何解决动态库的链接问题
- 开源私有云盘python_用Seafile不花钱搭建高安全性局域网私有云盘
- mysql中的substring()截取字符函数
- matlab录音函数怎么保存在哪里,利用matlab 录音
- sap 中migo收货自动打印smartform_EWM MES/ERP集成 生产收货的几种方式
- php查询近期数据,thinkphp中如何查询当天,本周的,本月的,本年的数据
- java sdk他edk de区别_最低SDK版本/目标SDK版本与编译SDK版本之间有什么区别?
- php中mysql_affected_rows()更新记录返回0_php中mysql_affected_rows()返回-1帶來的“陷阱” | 學步園...
- win10 mfc 连接mysql_win10下使用c语言连接mysql