事务

含义

通过一组逻辑操作单元(一组DML——sql语句),将数据从一种状态切换到另外一种状态

特点(ACID)

  • 原子性(A):要么都执行,要么都回滚
  • 一致性©:保证数据的状态操作前和操作后保持一致
  • 隔离性(I):多个事务同时操作相同数据库的同一个数据时,一个事务的执行不受另外一个事务的干扰
  • 持久性(D):一个事务一旦提交,则数据将持久化到本地,除非其他事务对其进行修改

事务的分类

  • 隐式事务:

没有明显的开启和结束事务的标志
比如:
insert、update、delete语句本身就是一个事务

  • 显式事务:

具有明显的开启和结束事务的标志
1、开启事务
取消自动提交事务的功能
2、编写事务的一组逻辑操作单元(多条sql语句)
insert
update
delete
3、提交事务或回滚事务

事务的隔离级别

事务并发问题
  • 脏读:一个事务读取到了另外一个事务未提交的数据
  • 不可重复读:同一个事务中,多次读取到的数据不一致
  • 幻读:一个事务读取数据时,另外一个事务进行更新,导致第一个事务读取到了没有更新的数据
mysql事务隔离级别(默认可重复读)
隔离级别 脏读(Dirty Read) 不可重复读(NonRepeatable Read) 幻读(Phantom Read)
未提交读(Read uncommitted) 可能 可能 可能
已提交读(Read committed) 不可能 可能 可能
可重复读(Repeatable read) 不可能 不可能 可能
可串行化(Serializable ) 不可能 不可能 不可能

事务控制语句

设置是否自动提交事务
# 禁止自动提交事务
SET AUTOCOMMIT=0
# 开启自动提交事务
SET AUTOCOMMIT=1
查看隔离级别
# 查看当前会话隔离级别
select @@tx_isolation;
# 查看系统当前隔离级别
select @@global.tx_isolation;
设置隔离级别
# 设置当前会话隔离级别
set session transaction isolatin level repeatable read;
# 设置系统当前隔离级别
set global transaction isolation level repeatable read;
显示开启事务
BEGIN
# 或者
START TRANSACTION
创建事务保存点,一个事务中可以有多个保存点
SAVEPOINT 保存点名称
删除事务保存点
RELEASE SAVEPOINT 保存点名称
回滚到事务保存点
ROLLBACK TO 保存点名称
回滚整个事务
ROLLBACK
# 或者
ROLLBACK WORK
提交事务
COMMIT
# 或者
COMMIT WORK

mysql-DTL语言相关推荐

  1. Mysql —— C语言链接mysql数据库,实现可以增删改查的角色权限登录系统

    /******************************************************************** * 标题:C语言链接mysql数据库,实现可以增删改查的角色 ...

  2. c语言访问mysql,C语言访问mysql数据库

    mysql中新建的数据库为hyx,hyx中的表为my_schema,表中的数据为下图: 编写代码,访问表中的数据,测试代码如下: #include "stdafx.h" #incl ...

  3. c语言 连接 mysql,C语言连接mysql -select

    C语言实现查询mysql数据库的行数,列的属性,以及每条记录. /* select.c */ #include #include #include #include "/usr/includ ...

  4. Mysql—C语言API接口

    Mysql-C语言API接口 一.mysql-arp访问数据的操作流程 1. 初始化mysql操作句柄: 2. 连接mysql服务器: 3. 设置mysql客户端字符集(保持与服务器一致): 4. 选 ...

  5. linux mysql c语言编程,在Linux下通过C语言操作MySQL数据库

    2010年1月27日 晚 22:10 作者:longyun(http://www.linuxdiyf.com/mailto:mtd527@gmail.com) 续:小弟最近想学习数据库,并想开发一个简 ...

  6. mysql完整性语言实验报告_MySQL实验报告.doc

    MySQL实验报告 信 息 科 学 与 技 术 系 实 验 报 告 实验五 索引和数据完整性 [目的与要求] 掌握索引的使用方法. 掌握数据完整性的实现方法. [实验准备] 了解索引的作用与分类. 掌 ...

  7. golang mysql curd_Go 语言操作 MySQL 之 CURD 操作

    本文转载于SegmentFault社区 作者:Meng小羽 MySQL 是目前开发中最常见的关系型数据库,使用 Go 语言进行操控数据库需要使用 Go 自带database/sql和驱动go-sql- ...

  8. mysql c语言教程,C语言调用mysql快速教程(精华篇).pdf

    C语言调用mysql快速教程(精华篇).pdf ,使用 语言操作 之前,先在 里头创建一个数据库,一个表,在表里头添加 1 c mysql mysql 数据如下: 创建数据库,库名为 cusemysq ...

  9. mysql c语言数字转字符串函数_C++_c语言标准库中字符转换函数和数字转换函数,字符转换为数字: #includest - phpStudy...

    c语言标准库中字符转换函数和数字转换函数 字符转换为数字: #include atoi();将字符转换为整型   例:char ch1;int i=atoi(ch1); atol();将字符转化为长整 ...

  10. Mysql中语言分类和区别

    SQL语言一共分为4大类:数据定义语言DDL,数据操纵语言DML,数据查询语言DQL,数据控制语言DCL   1.数据定义语言DDL(Data Definition Language) 对象: 数据库 ...

最新文章

  1. 2015年度打榜之数据备份硬件
  2. 《C++标准程序库》读书笔记(三)
  3. 获取Http协议的请求行,请求头
  4. [转]opensuse vim 的语法高亮
  5. Python学习:文件操作
  6. 编译Flink项目的时候遇到cannot find symbol   symbol:   variable Time
  7. QT Openssl no OPENSSL_Applink 解决
  8. java 盘符 系统_001-Java再回首开篇-入门基础
  9. python61到08使用说明书_python 08 文件操作
  10. SpringBoot2.0基础案例(01):环境搭建和RestFul风格接口
  11. Iframe 高度自适应的问题
  12. cut最后几位 shell_Linux Shell之cut命令
  13. css 背景色渐变 background linear-gradient
  14. 打通语言理论和统计 NLP 两个世界,Transformers/GNNs 架构能做到吗?
  15. top刷新间隔_还在用top监控CPU?我们都在用glances
  16. 单例模式详解(线程安全,饿汉,懒汉模式)
  17. 极速还原 V4.0 简体中文绿色免费版
  18. TalkingData技术实现分析
  19. 一级路由器映射二级路由器端口映射
  20. 不支持:http://javax.xml.XMLConstants/property/accessExternalStylesheet

热门文章

  1. 针对VMware安装Win10需要安装.NET Framework 3.5常见的0x800F0906、0x800F081F错误解决办法
  2. win7安不了python_win7下安装python失败问题
  3. echarts去除网格线_echarts实现去掉X轴、Y轴和网格线效果实例分享
  4. Ubuntu安装LXDE桌面环境
  5. 分贝、电平、增益、音高、音分、声能、声强、声压...
  6. android 格式化sd咔_如何在Android中格式化SD卡 | MOS86
  7. webrtc与stunserver、turnserver建立连接花费时间十秒左右
  8. 小srf的游戏(单调队列+dp)
  9. C语言 求100--200之间的素数
  10. 解决App自动化的不稳定因素-弹框及首页启动加载完成判断处理