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 存储引擎的表进行行级锁定.默认情况下,表锁和行锁都是自动获得的,不 ...
随机推荐
- day22---面向对象基础初识
面向过程编程: 核心是过程两个字,指的是解决问题的步骤,即先干什么再干什么,基于面向过程设计的程序就好比在设计一条流水线,是一种机械的思维方式. 优点:复杂问题流程化, 缺点:程序的可扩展性差 面向对 ...
- Autoware(1)——快速开始
该部分可参照github Autoware中的 Demo Quick_Start. 1. 建立目录“.autoware”来保存demo数据 mkdir .autoware 2. 下载Demo数据下载d ...
- 在Web界面中实现Excel数据大量导入的处理方式
在早期Bootstrap框架介绍中,我的随笔<结合bootstrap fileinput插件和Bootstrap-table表格插件,实现文件上传.预览.提交的导入Excel数据操作流程> ...
- 安卓调试工具adb返回的png截图,直接输出到控制台的修复问题
原始出处:www.cnblogs.com/Charltsing/p/adbpngfix.html QQ:564955427 adb由于兼容性问题,会把0a替换成0d0a输出到控制台,这会造成png图片 ...
- c语言之数据类型
#include<stdio.h> int main(void) { float weight, value; printf("Are you worth your weight ...
- 软件工程(FZU2015) 赛季得分榜,第四回合
SE_FZU目录:1 2 3 4 5 6 7 8 9 10 11 12 13 积分规则 积分制: 作业为10分制,练习为3分制:alpha30分: 团队项目分=团队得分+个人贡献分 个人贡献分: 个人 ...
- NIO原理及案例使用
什么是NIO Java提供了一个叫作NIO(New I/O)的第二个I/O系统,NIO提供了与标准I/O API不同的I/O处理方式.它是Java用来替代传统I/O API(自Java 1.4以来). ...
- Java的selenium代码随笔(3)
/** 以下方法主要用于切换页面*/public void SetPageSwitch(String pageTitle) {Set<String> allWindowsHandles = ...
- SqlServer如何判断字段中是否含有汉字?
--/* --unicode编码范围: --汉字:[0x4e00,0x9fa5](或十进制[19968,40869]) --数字:[0x30,0x39](或十进制[48, 57]) --小写字母:[0 ...
- SpringMVC整合freeMarker实现页面静态化+SpringMVC配置多视图
一.背景 1.什么是FreeMarker FreeMarker是一个模板引擎,一个基于模板生成文本输出的通用工具,使用纯Java编写 FreeMarker被设计用来生成HTML Web页面,特别是基于 ...