MySql的事务控制(TCL语言)
⒈事务
一个或一组sql语句组成一个执行单元,这个执行单元要么全部执行,要么全部不执行。
⒉事务的特性(ACID)
1.原子性(Atomicity):一个事务不可再分割,要么都执行要么都不执行。
2.一致性(Consistency):一个事务执行会使数据从一个一致状态切换到另外一个一致状态。
3.隔离性(Isolation):一个事务的执行不受其它事务的干扰。
4.持久性(Durability):一个事务一旦提交,则会永久的改变数据库的数据。
⒊事务的创建
1.隐式事务:事务没有明显的开启和结束的标记,例如insert、update和delete语句
2.显式事务:事务具有明显的开启和结束的标记。前提,必须先设置自动提交功能为禁用。set autocommit = 0;
显示当前事务状态 show variables like 'autocommit';
⒋事务过程
①开启事务
set autocommit = 0;
start transaction; #可选
②编写事务中的sql语句(select、insert、update、delete)
语句1;
语句2;
....
③结束事务
commit; #提交事务
rollback; #回滚事务
⒌事务的隔离级别
| 级别 | 脏读 | 不可重复读 | 幻读 |
|
read uncommitted 读未提交(数据) |
✓ | ✓ | ✓ |
|
read committed 读已提交(数据) |
✗ | ✓ | ✓ |
|
repeatable read 可重复读 |
✗ | ✗ | ✓ |
|
serializable 串行化 |
✗ | ✗ | ✗ |
MySql中默认第三个隔离级别:repeatable read(可重复读)
Oracle中默认第二个隔离级别:read committed(读已提交)
查看隔离级别:select @@tx_isolation
设置隔离级别:set session|global transaction isolation level
⒍SAVEPOINT回滚点
在sql中设置
语句1;
savepoint a; #设置回滚点
语句2;
rollback to a; #回滚到指定的回滚点
MySql的事务控制(TCL语言)的更多相关文章
- mysql DBI 事务控制
事务: 事务是任何健壮数据库系统的基本组成,它们 防止错误和数据库腐败通过确保有关数据的改变是原子发生的(不可分割的,要么所有要么什么都不做) 这个章节应用于数据库支持事务和 AutoCommit 是 ...
- 【MyBatis】MyBatis 连接池和事务控制
MyBatis 连接池和事务控制 文章源码 MyBaits 连接池 实际开发中都会使用连接池,因为它可以减少获取连接所消耗的时间.具体可查看 MyBatis 数据源配置在 SqlMapConfig.x ...
- MySQL数据库笔记三:数据查询语言(DQL)与事务控制语言(TCL)
五.数据查询语言(DQL) (重中之重) 完整语法格式: select 表达式1|字段,.... [from 表名 where 条件] [group by 列名] [having 条件] [order ...
- MySQL笔记总结-TCL语言
TCL语言 事务 一.含义 事务控制语言 Transaction Control Language 事务:一条或多条sql语句组成一个执行单位,一组sql语句要么都执行要么都不执行 二.特点(ACID ...
- Mysql锁机制和事务控制
如何加锁 锁定表的语法: LOCK TABLES tbl_name [AS alias] {READ [LOCAL] | [LOW_PRIORITY] WRITE} [, tbl_n ...
- mysql 开发基础系列20 事务控制和锁定语句(上)
一.概述 在mysql 里不同存储引擎有不同的锁,默认情况下,表锁和行锁都是自动获得的,不需要额外的命令, 有的情况下,用户需要明确地进行锁表或者进行事务的控制,以便确保整个事务的完整性.这样就需要使 ...
- 14.Mysql事务控制和锁定
14.事务控制和锁定存储引擎和锁: MyISAM和MEMORY存储引擎的表支持表级锁: BDB存储引擎的表支持页级锁: InnoDB存储引擎的表支持行级锁.默认情况下,表锁和行锁都是根据执行的语句自动 ...
- (1.3)mysql 事务控制和锁定语句
(1.3)mysql 事务控制和锁定语句 lock table 参考转载自:https://www.cnblogs.com/kerrycode/p/6991502.html 关键词:mysql loc ...
- mysql事务控制和锁定语句
MySQL 支持对 MyISAM 和 MEMORY 存储引擎的表进行表级锁定,对 BDB 存储引擎的表进行页级锁定,对 InnoDB 存储引擎的表进行行级锁定.默认情况下,表锁和行锁都是自动获得的,不 ...
随机推荐
- Linux内存管理 (1)物理内存初始化
专题:Linux内存管理专题 关键词:用户内核空间划分.Node/Zone/Page.memblock.PGD/PUD/PMD/PTE.lowmem/highmem.ZONE_DMA/ZONE_NOR ...
- Elasticsearch 通关教程(二): 索引映射Mapping问题
数据库建表的时候,我们的DDL语句一般都会指定每个字段的存储类型,例如:varchar,int,datetime等等,目的很明确,就是更精确的存储数据,防止数据类型格式混乱. CREATE TABLE ...
- Linux下部署开源版“禅道”项目管理系统
1.开源版安装包下载 [root@iZbp ~]# wget http://dl.cnezsoft.com/zentao/9.0.1/ZenTaoPMS.9.0.1.zbox_64.tar.gz 2. ...
- 6-4 The present perfect
1 Summary The present perfect is an important verb tense in English. It is used to talk about things ...
- Gradle打jar包命令
- 谈谈java做登录那些事(一 分析)
前言: 最近要给自己的网站模板写一个登陆功能,其他功能已经写了一半了,我觉得可以写个登陆整合一下了. 借鉴博客:https://www.cnblogs.com/moyand/p/9047978.htm ...
- Linux--主从复制
一 . mysql+centos7 mariadb mariadb其实是跟mysql是一样的,只不过是在centos7上叫做mariadb, 主要是因为mysql被甲骨文公司收购后,可能会有闭源的风险 ...
- vhdl verilog
一个signal. reg 不能同时在两个always 或者 process 中,synth 8-3352
- [BZOJ 3110] [ZJOI 2013] K大数查询
Description 有 \(N\) 个位置,\(M\) 个操作.操作有两种,每次操作如果是: 1 a b c:表示在第 \(a\) 个位置到第 \(b\) 个位置,每个位置加入一个数 \(c\): ...
- Magento2自定义命令
命令命名准则 命名指南概述 Magento 2引入了一个新的命令行界面(CLI),使组件开发人员能够插入模块提供的命令. Command name Command name 在命令中,它紧跟在命令的名 ...