事务是作为单个逻辑工作单元执行的一系列操作。一个逻辑工作单元必须有四个属性,称为原子性、一致性、隔离性和持久性 (ACID) 属性,只有这样才能成为一个事务。
原子性
:事务必须是原子工作单元;对于其数据修改,要么全都执行,要么全都不执行。
一致性
:事务在完成时,必须使所有的数据都保持一致状态。在相关数据库中,所有规则都必须应用于事务的修改,以保持所有数据的完整性。事务结束时,所有的内部数据结构(如 B 树索引或双向链表)都必须是正确的。
隔离
:由并发事务所做的修改必须与任何其他并发事务所做的修改隔离。事务识别数据时数据所处的状态,要么是另一
并发事务修改它之前的状态,要么是第二个事
务修改它之后的状态,事务不会识别中间状态的数据。这称为可串行性,因为它能够重新装载起始数据,并且重播一系列事务,以使数据结束时的状态与原始事务执
行的状态相同。
持久性
:事务完成之后,它对于系统的影响是永久性的。该修改即使出现系统故障也将一直保持。
MYSQL中只有INNODB
和BDB
类型的数据表才能支持
事务
处理,其他的类型是不支持的!
1.START TRANSACTION, COMMIT和ROLLBACK语法
1
2
3
4
|
START
TRANSACTION
|
BEGIN
[
WORK
]
COMMIT
[
WORK
] [
AND
[
NO
] CHAIN] [[
NO
] RELEASE]
ROLLBACK
[
WORK
] [
AND
[
NO
] CHAIN] [[
NO
] RELEASE]
SET
AUTOCOMMIT = {0 | 1}
|
start transaction 或 begin 语句可以开始一项新的事务。commit
可以提交当前事务,是变更成为永久变更。rollback 可以 回滚当前事务,取消其变更。set autocommit
语句可以禁用或启用默认的 autocommit 模式,用于当前连接。更多请查看mysql手册MySQL事务处理和锁定语句
。
*实例:
#数据表结构如下:
1
2
3
4
5
|
create
table
`
user
`(
`id`
int
(10)
not
null
auto_increment,
`
name
`
varchar
(100)
default
null
comment
'name'
,
primary
key
(`id`)
)engine=innodb
default
charset=utf8;
|
#执行:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
//
select
*
from
`
user
`;
//
start
transaction
;
insert
into
`
user
` (`
name
`)
values
(
'admin'
);
insert
into
`
user
` (`
name
`)
values
(
'root'
);
commit
;
select
*
from
`
user
`;
//
start
transaction
;
insert
into
`
user
` (`
name
`)
values
(
'sword'
);
insert
into
`
user
` (`
name
`)
values
(
'test'
);
rollback
;
select
*
from
`
user
`;
|
#第一次select结果:Empty
#第二次select结果:
1
2
3
4
5
6
|
+
| id |
name
|
+
| 1 | admin|
| 2 | root |
+
|
#第三次select结果:
1
2
3
4
5
6
|
+
| id |
name
|
+
| 1 | admin|
| 2 | root |
+
|
事务有着广泛的应用,例如:银行转账、网上购物、各种管理系统。
更多内容请查看www.sword88.com
分享到:
相关推荐
简单说明了MySQL的事务。 事务的由来,事务在MySQL中的用法。
关于mysql的事务处理 public static void StartTransaction(Connection con, String[] sqls) throws Exception { if (sqls == null) { return; } Statement sm = null; try { // 事务开始 System....
MySQL编程与事务,数据控制语言DCL,事务控制语言(DTL)
MySQL执行XA MySQL时,MySQL服务器相当于一个用于管理全局事务中的XA事务的资源管理器。与MySQL服务器连接的客户端相当于事务管理器。从5.1版本开始支持
mysql事务处理的意义 事务处理机制在程序开发过程中有着非常重要的作用,它可以使整个系统更加安全,例如在银行处理转账业务时,如果A账户中的金额刚被发出,而B账户还没来得及接收就发生停电,这会给银行和个人带来...
MySQL锁与事务知识脑图
一、数据库索引概述; 二、数据库索引分类; 三、Mysql数据库管理索引; 四、数据库事务概述; 五、数据库事务特性; 六、Mysqk数据库管理事务;
mysql支持事务配置,启动InnoDB引擎的方法.
02.MySQL事务篇.pdf02.MySQL事务篇.pdf02.MySQL事务篇.pdf02.MySQL事务篇.pdf02.MySQL事务篇.pdf02.MySQL事务篇.pdf02.MySQL事务篇.pdf02.MySQL事务篇.pdf02.MySQL事务篇.pdf02.MySQL事务篇.pdf02.MySQL事务篇.pdf02...
mysql事务处理用法与实例详解
PHP中如何使用MySQL与MsSQL中的事务
MySQL事务隔离级别详解,这个面试经常会面到,必会呀,哈哈
mysql 事务等待锁超时分析
mysql事件,触发器,事务
Mysql事务以及锁原理讲解,方便大家了解mysql事务和锁的原理
mysql的锁机制和事务
1.通过ODBC使C#能够对MySQL数据进行访问,并可以进行事务处理。 2.通过ODBC使C#能够对Oracle数据进行访问,并可以进行事务处理。 3.文档里面包含了环境配置,软件安装的全过程。最后包含了可执行的数据库连接共同的...
jdbc+spring+mysql事务理解和分析
什么情况适合用存储过程? 当多个用不同语言开发的应用程序或不同平台的应用程序需要去执行相同的数据库操作. (避免为各个程序都开发相同的功能) 安全性要求较高时,使用存储程序和...MySql存储过程与事务处理教学PPT