●事务的ACID(acid)属性

➢1.原子性(Atomicity )

原子性是指事务是-一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生。

➢2. 一致性(Consistency)

事务必须使数据库从一一个--致性状态变换到另外一一个--致性状态

➢3.隔离性(Isolation)

事务的隔离性是指一- 个事务的执行不能被其他事务干扰,即一一个事务内部的操作及使用的数据对并发的其他事务是隔离的,并发执行的各个事务之间不能互相干扰。

➢4.持久性(Durability)

持久性是指-一个事务-一旦被提交,它对数据库中数据的改变就是永久性的,接下来的其他操作和数据库故障不应该对其有任何影响

●事务的类型

 隐式事务: 事务没有明显的开启和结束的标记比如insert、update、 delete语句
delete from:    表where id =1;
显式事务: 事务具有明显的开启和结束的标记前提 , 必须先设置自动提交功能为禁用 
set autocommit = 0;
●事务的使用
#步骤一:开启事务
set autocommit = 0;
start transaction ; #可选的
#步骤二: 编写事务的sql语句(select , insert , update , delete)
SELECT * FROM sys;
...
#步骤三:结束事务
commit ; #提交事务
#rollback; #回滚事务,即使事务执行成功,表中数据也不会保存在磁盘中,但是会将事务中操作的表显示,类似于SELECT出来的表可以显示但是不会保存
●示例
1)成功执行
DROP DATABASE IF EXISTS human;
CREATE DATABASE IF NOT EXISTS human;
USE human;
CREATE TABLE man(
id INT PRIMARY KEY AUTO_INCREMENT ,
name VARCHAR(20) NOT NULL
); SET AUTOCOMMIT = 0;
START TRANSACTION;
insert man
VALUES (NULL,'archer'),(NULL,'saber'),(NULL,'lancer') ;
#insert man
#VALUES (NULL,NULL);
SELECT * FROM man;
COMMIT;
#ROLLBACK; #这里不进行回滚操作,如果需要回滚,那么将COMMIT注释并撤销这句的注释就好

2)失败执行(事务中部分语句无法执行,导致整个事务没有提交)

DROP DATABASE IF EXISTS human;
CREATE DATABASE IF NOT EXISTS human;
USE human;
CREATE TABLE man(
id INT PRIMARY KEY AUTO_INCREMENT ,
name VARCHAR(20) NOT NULL
); SET AUTOCOMMIT = 0;
START TRANSACTION;
insert man
VALUES (NULL,'archer'),(NULL,'saber'),(NULL,'lancer') ;
insert man
VALUES (NULL,NULL);#这条语句无法执行
SELECT * FROM man;
COMMIT;
#ROLLBACK;

SQL之事务的更多相关文章

  1. 人人都是 DBA(VI)SQL Server 事务日志

    SQL Server 的数据库引擎通过事务服务(Transaction Services)提供事务的 ACID 属性支持.ACID 属性包括: 原子性(Atomicity) 一致性(Consisten ...

  2. SQL Server事务的隔离级别

    SQL Server事务的隔离级别 ########## 数据库中数据的一致性 ########## 针对并发事务出现的数据不一致性,提出了4个级别的解决方法:  隔离级别  第一类丢失更新  脏读 ...

  3. Sql Server 事务隔离级别的查看及更改

    根据自身 Sql Server 的情况来自定义 事务隔离级别,将会更加的满足需求,或提升性能.例如,对于逻辑简单的 Sql Server,完全可以使用 read uncommitted 模式,来减少死 ...

  4. sql之事务和并发

    1.Transaction(事务)是什么: 事务是作为单一工作单元而执行的一系列操作.包括增删查改. 2.事务的种类: 事务分为显示事务和隐式事务: 隐式事务:就是平常我们使用每一条sql 语句就是一 ...

  5. 【SqlServer系列】浅谈SQL Server事务与锁(上篇)

    一  概述 在数据库方面,对于非DBA的程序员来说,事务与锁是一大难点,针对该难点,本篇文章视图采用图文的方式来与大家一起探讨. “浅谈SQL Server 事务与锁”这个专题共分两篇,上篇主讲事务及 ...

  6. SQL SERVER 事务的使用(tran)

    sql server事务的使用是为了确保数据的一致性. 通常写法 begin tran --sql 语句1 --sql 语句2 --sql 语句3 commit tran 上面写法存在隐患,当操作(增 ...

  7. 理解Sql Server 事务隔离层级(Transaction Isolation Level)

    关于Sql Server 事务隔离级别,百度百科是这样描述的 隔离级别:一个事务必须与由其他事务进行的资源或数据更改相隔离的程度.隔离级别从允许的并发副作用(例如,脏读或虚拟读取)的角度进行描述. 隔 ...

  8. SQL SERVER 事务和锁

    内容皆整理自网络 一.事务 作者:郭无心链接:https://www.zhihu.com/question/31346392/answer/59815366来源:知乎著作权归作者所有.商业转载请联系作 ...

  9. SQL Server 事务复制爬坑记

    SQL Server 复制功能折腾了好几天了,现特将其配置过程以及其间遇到的问题记录下来,以备日后查阅.同时,也让“同道”同学们少走不必要的弯路.如果有不对之处,欢迎大家指正,欢迎沟通交流. 一.复制 ...

  10. SQL Server事务回滚对自增键的影响

    SQL Server事务回滚时是删除原先插入导致的自增值,也就是回滚之前你你插入一条数据导致自增键加1,回滚之后还是加1的状态 --如果获取当前操作最后插入的identity列的值:select @@ ...

随机推荐

  1. Spring Boot教程(四十二)LDAP来管理用户信息(2)

    使用spring-data-ldap的基础用法,定义LDAP中属性与我们Java中定义实体的关系映射以及对应的Repository @Data @Entry(base = "ou=peopl ...

  2. 深入使用Vue + TS

    深入使用TS 支持 render jsx 写法 这里一共分两步 首先得先让 vue 支持 jsx 写法 再让 vue 中的 ts 支持 jsx 写法 让 vue 支持 jsx 按照官方做法,安装Bab ...

  3. 关于mysql创建数据库,基字符集 和 数据库排序规则 的对比选择

    1.一般选择utf8.下面介绍一下utf8与utfmb4的区别. utf8mb4兼容utf8,且比utf8能表示更多的字符.至于什么时候用,看你的做什么项目了,unicode编码区从1 - 126就属 ...

  4. LeetCode 114. 二叉树展开为链表(Flatten Binary Tree to Linked List)

    题目描述 给定一个二叉树,原地将它展开为链表. 例如,给定二叉树 1 / \ 2 5 / \ \ 3 4 6 将其展开为: 1 \ 2 \ 3 \ 4 \ 5 \ 6 解题思路 二叉树转化为链表的基本 ...

  5. SpringBoot2.X&Prometheus使用

    1.启动Prometheus [root@ip101 prometheus-2.12.0.linux-amd64]# pwd /opt/app/prometheus-2.12.0.linux-amd6 ...

  6. Https 协议解析

    1 概述1.1 HTTPS    使用SSL协议,对HTTP协议通信过程中的明文数据加密,这就是HTTPS.网络分层结构如下: SSL协议负责数据加密,解密,位于HTPP协议和TCP协议之间.    ...

  7. 关于bootstrap按钮的偏移

    <body> <div id="divForm" class="addView"> <div class="form-h ...

  8. dbgrid中移动焦点到指定的行和

    dbgrid是从TCustomGrid继承下来的,它有col与row属性,只不过是protected的,不能直接访问,要处理一下,可以这样: TDrawGrid(dbgrid1).row:=row;  ...

  9. spark map和mapPartitions的区别

    package dayo1 import org.apache.spark.{SparkConf, SparkContext} import scala.collection.mutable.Arra ...

  10. phpstorm 远程连接服务器进行开发

    phpstorm phpstorm是一款功能强大的ide编辑器,有了它,你敲代码速度能比用notepad++快数倍(初学者不建议使用ide,建议使用notepad++),缺点是没有固态的电脑带起来吃力 ...