SQL之事务
●事务的ACID(acid)属性
➢1.原子性(Atomicity )
原子性是指事务是-一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生。
➢2. 一致性(Consistency)
事务必须使数据库从一一个--致性状态变换到另外一一个--致性状态
➢3.隔离性(Isolation)
事务的隔离性是指一- 个事务的执行不能被其他事务干扰,即一一个事务内部的操作及使用的数据对并发的其他事务是隔离的,并发执行的各个事务之间不能互相干扰。
➢4.持久性(Durability)
持久性是指-一个事务-一旦被提交,它对数据库中数据的改变就是永久性的,接下来的其他操作和数据库故障不应该对其有任何影响
●事务的类型
delete from: 表where id =1;
#步骤一:开启事务
set autocommit = 0;
start transaction ; #可选的
#步骤二: 编写事务的sql语句(select , insert , update , delete)
SELECT * FROM sys;
...
#步骤三:结束事务
commit ; #提交事务
#rollback; #回滚事务,即使事务执行成功,表中数据也不会保存在磁盘中,但是会将事务中操作的表显示,类似于SELECT出来的表可以显示但是不会保存
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之事务的更多相关文章
- 人人都是 DBA(VI)SQL Server 事务日志
SQL Server 的数据库引擎通过事务服务(Transaction Services)提供事务的 ACID 属性支持.ACID 属性包括: 原子性(Atomicity) 一致性(Consisten ...
- SQL Server事务的隔离级别
SQL Server事务的隔离级别 ########## 数据库中数据的一致性 ########## 针对并发事务出现的数据不一致性,提出了4个级别的解决方法: 隔离级别 第一类丢失更新 脏读 ...
- Sql Server 事务隔离级别的查看及更改
根据自身 Sql Server 的情况来自定义 事务隔离级别,将会更加的满足需求,或提升性能.例如,对于逻辑简单的 Sql Server,完全可以使用 read uncommitted 模式,来减少死 ...
- sql之事务和并发
1.Transaction(事务)是什么: 事务是作为单一工作单元而执行的一系列操作.包括增删查改. 2.事务的种类: 事务分为显示事务和隐式事务: 隐式事务:就是平常我们使用每一条sql 语句就是一 ...
- 【SqlServer系列】浅谈SQL Server事务与锁(上篇)
一 概述 在数据库方面,对于非DBA的程序员来说,事务与锁是一大难点,针对该难点,本篇文章视图采用图文的方式来与大家一起探讨. “浅谈SQL Server 事务与锁”这个专题共分两篇,上篇主讲事务及 ...
- SQL SERVER 事务的使用(tran)
sql server事务的使用是为了确保数据的一致性. 通常写法 begin tran --sql 语句1 --sql 语句2 --sql 语句3 commit tran 上面写法存在隐患,当操作(增 ...
- 理解Sql Server 事务隔离层级(Transaction Isolation Level)
关于Sql Server 事务隔离级别,百度百科是这样描述的 隔离级别:一个事务必须与由其他事务进行的资源或数据更改相隔离的程度.隔离级别从允许的并发副作用(例如,脏读或虚拟读取)的角度进行描述. 隔 ...
- SQL SERVER 事务和锁
内容皆整理自网络 一.事务 作者:郭无心链接:https://www.zhihu.com/question/31346392/answer/59815366来源:知乎著作权归作者所有.商业转载请联系作 ...
- SQL Server 事务复制爬坑记
SQL Server 复制功能折腾了好几天了,现特将其配置过程以及其间遇到的问题记录下来,以备日后查阅.同时,也让“同道”同学们少走不必要的弯路.如果有不对之处,欢迎大家指正,欢迎沟通交流. 一.复制 ...
- SQL Server事务回滚对自增键的影响
SQL Server事务回滚时是删除原先插入导致的自增值,也就是回滚之前你你插入一条数据导致自增键加1,回滚之后还是加1的状态 --如果获取当前操作最后插入的identity列的值:select @@ ...
随机推荐
- Complete Tripartite
D - Complete Tripartite 思路:这个题是个染色问题.理解题意就差不多写出来一半了.开始的时候还想用离散化来储存每个点的状态,即它连接的点有哪些,但很无奈,点太多了,long lo ...
- spark on yarn 动态资源分配报错的解决:org.apache.hadoop.yarn.exceptions.InvalidAuxServiceException: The auxService:spark_shuffle does not exist
组件:cdh5.14.0 spark是自己编译的spark2.1.0-cdh5.14.0 第一步:确认spark-defaults.conf中添加了如下配置: spark.shuffle.servic ...
- 如何在main.js中改变vuex中的值?
做登录权限控制的时候, 我通过全局路由守卫来去做权限判断,这样的话可能需要在整个项目加载的初期去做一些诸如 接口请求. vuex修改 之类的问题 其实非常简单,直接如图:
- func<T> 和 action<T>
一.Func Func<Result>,Func<T1,Result>是一个.Net内置的泛型委托. Func<TResult> Func<T,TResult ...
- Node.js自学完全总结
零.什么是Node.js? 引用Node.js官方网站的解释如下: Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript e ...
- setHasFixedSize(true)的意义 (转)
RecyclerView setHasFixedSize(true)的意义 2017年07月07日 16:23:04 阅读数:6831 <span style="font-size:1 ...
- redis数据类型为key的常用命令
redis默认自带16个库select 7切换到redis第8个数据库dbsize查看reids有几个keykeys *查看所有k,vclear清空控制台FLUSHDB清空当前数据库的kvFLUSHA ...
- 最简SpringBoot程序制法
JDK:1.8.0_212 IDE:STS4(Spring Tool Suit4 Version: 4.3.2.RELEASE) 工程下载:https://files.cnblogs.com/file ...
- kettle的数据库配置的表分析
以下场景,用mysql来举例说明.本文是在初步了解了kettle的数据库配置之后,做的总结和分析.将kettle中的配置用数据库管理的时候,在创建了一个新的数据库,还没有做任何kettle中的job和 ...
- Mac/Linux 编译安装redis
一.下载安装 官网http://redis.io/ 下载最新的稳定版本,这里是3.2.0 sudu mv redis-.tar /usr/local/ sudo tar -zxf redis-.tar ...