MySQL 数据库事务
TCL(Transaction Control Language)事务控制语言
一、事务: .
含义:
由一个或一组sql语句组成一个执行单元,每个MySQL语句是相互依赖的,整个单独单元是一个不可分割的整体,若某条sql语句执行失败或产生错误,整个单元将会回滚,返回最初的状态。(执行单元要么全部执行,要么全部不执行。)
补充:存储引擎
概念:在MySQL中,数据的不同的存储技术
查看MySQL中支持的存储引擎:
常用的存储引擎:
InnoDB是当前数据库服务器默认的存储引擎,支持事务;
MyISAM 是5.5版本之前默认的存储引擎;MEMORY也比较常用,这两种不支持事务。
事务的特性:
ACID
原子性:一个事务不可再分割,要么都执行要么都不执行
一致性: -一个事务执行会使数据从一个一致状态切换到另外一-个一致状态
隔离性: -一个事务的执行不受其他事务的干扰
持久性:一个事务一旦提交,则会永久的改变数据库的数据.
事务的特点:
事务的ACID(acid)属性:
*1.原子性( Atomicity)
原子性是指事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生。(要么都执行,要么都回滚)
2.一致性(Consistency)
事务必须使数据库从一个一致性状态变换到另外一个一致性状态.
(保证数据的状态操作前和操作后保持一致)
3.隔离性( Isolation )
事务的隔离性是指一个事务的执行不能被其他事务干扰,即一个事务内部的操作及使用的数据对并发的其他事务是隔离的,并发执行的各个事务之间不能互相干扰。
(多个事务同时操作相同数据库的同一个数据时,一个事务的执行不受另外一个事务的干扰)
4.持久性(Durability )
持久性是指一个事务一旦被提交,它对数据库中数据的改变就是永久性的,接下来的其他操作和数据库故障不应该对其有任何影响。
(一个事务一旦提交,则数据将持久化到本地,除非其他事务对其进行修改)