`
sword88
  • 浏览: 9129 次
  • 性别: Icon_minigender_1
  • 来自: 济南
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

MySQL与事务

阅读更多

事务是作为单个逻辑工作单元执行的一系列操作。一个逻辑工作单元必须有四个属性,称为原子性、一致性、隔离性和持久性 (ACID) 属性,只有这样才能成为一个事务。

原子性 :事务必须是原子工作单元;对于其数据修改,要么全都执行,要么全都不执行。

一致性 :事务在完成时,必须使所有的数据都保持一致状态。在相关数据库中,所有规则都必须应用于事务的修改,以保持所有数据的完整性。事务结束时,所有的内部数据结构(如 B 树索引或双向链表)都必须是正确的。

隔离 :由并发事务所做的修改必须与任何其他并发事务所做的修改隔离。事务识别数据时数据所处的状态,要么是另一 并发事务修改它之前的状态,要么是第二个事 务修改它之后的状态,事务不会识别中间状态的数据。这称为可串行性,因为它能够重新装载起始数据,并且重播一系列事务,以使数据结束时的状态与原始事务执 行的状态相同。

持久性 :事务完成之后,它对于系统的影响是永久性的。该修改即使出现系统故障也将一直保持。

MYSQL中只有INNODBBDB 类型的数据表才能支持 事务 处理,其他的类型是不支持的!

1.START   TRANSACTION, COMMIT和ROLLBACK语法



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

0
0
分享到:
评论

相关推荐

    MySQL中的事务(MySQL与事务)

    简单说明了MySQL的事务。 事务的由来,事务在MySQL中的用法。

    mySQL事务处理

    关于mysql的事务处理 public static void StartTransaction(Connection con, String[] sqls) throws Exception { if (sqls == null) { return; } Statement sm = null; try { // 事务开始 System....

    mysql分布式事务实现 MySQL XA pdf

    ### MySQL分布式事务处理与XA协议详解 #### 一、引言 在当今互联网技术高度发展的背景下,分布式系统已经成为处理大规模数据的关键技术之一。而在分布式环境中,确保数据的一致性成为了非常重要的挑战。其中,...

    MySQL编程与事务

    MySQL编程与事务,数据控制语言DCL,事务控制语言(DTL)

    PHP MySQL 与 MsSQL 中的事务

    在PHP中使用MySQL事务,通常涉及到几个关键函数:`mysql_query()`、`mysql_rollback()` 和 `mysql_commit()`。下面通过示例代码来详细说明: ```php // 开启事务 mysql_query("SET AUTOCOMMIT=0"); mysql_query(...

    MySQL锁与事务脑图.pdf

    MySQL锁与事务知识脑图

    mysql支持事务配置,配置InnoDB引擎

    ### MySQL支持事务配置及启用InnoDB引擎详解 #### 一、引言 MySQL是一种广泛使用的开源关系型数据库管理系统,以其高性能、稳定性和易用性而闻名。其中,InnoDB存储引擎因其支持事务处理、行级锁定和外键等功能,...

    Mysql事务的隔离性

    #### 一、事务与MySQL架构 **事务**是数据库管理系统执行过程中的一系列逻辑操作,这些操作作为一个完整的单元被执行。如果事务内的所有操作都成功完成,则整个事务成功;如果其中一个操作失败,则整个事务都会被...

    mysql事务处理用法与实例详解

    ### MySQL事务处理用法与实例详解 #### 一、事务的概念及重要性 在数据库管理中,事务(Transaction)是指一系列作为一个整体的操作序列。这些操作要么全部成功,要么全部失败,不能只执行其中的一部分。事务处理...

    MySQL事务隔离级别

    MySQL事务隔离级别是数据库管理系统中一个非常重要的概念,它关系到数据的一致性和并发性能。在MySQL中,事务被用于确保数据库操作的原子性、一致性、隔离性和持久性(ACID特性)。事务隔离级别主要涉及四个方面:读...

    MySQL或Oracle通过ODBC与C#建立连接和进行事务处理

    ### MySQL或Oracle通过ODBC与C#建立连接和进行事务处理 #### 一、概述 在现代企业级应用开发中,数据库的选择对于整个系统的稳定性和性能有着至关重要的影响。随着多语言开发的需求日益增长,如何让不同的编程语言...

    mysql事务学习资料(PPT+源码)

    在这个"mysql事务学习资料(PPT+源码)"中,你将深入理解MySQL事务的概念、类型、特性和实际应用。 1. **事务概念**:在数据库中,事务是一系列操作的集合,这些操作要么全部成功,要么全部回滚,以保持数据的一致性...

    Mysql事务以及锁原理讲解.pdf

    在深入探讨MySQL事务和锁的原理之前,我们首先需要对“事务”的概念有一个基本的理解。事务是一组操作的集合,这些操作要么全部完成,要么全部不做,确保数据库从一种一致性状态转换到另一种一致性状态,而不会留下...

    深入剖析Oracle与MySQL在事务处理上的差异

    本文将从事务的基本概念、隔离级别、锁机制以及事务控制语句等方面,详细探讨Oracle与MySQL在事务处理上的差异,并提供代码示例。 Oracle和MySQL在事务处理上有着各自的特点。Oracle提供了强大的并发控制和隔离级别...

    mysql-事件,触发器,事务-实验七.docx

    MySQL 事件、触发器、事务实验报告 MySQL 事件调度器是 MySQL 中的一种机制,可以根据指定的时间间隔执行特定的 SQL 语句。事件调度器有两个优点:一是可以用于定期统计、清理、检查等操作;二是可以提高数据库的...

    MySQL8.0锁机制和事务

    MySQL 8.0 锁机制和事务 MySQL 8.0 中的锁机制和事务是数据库系统中非常重要的概念。锁机制是指数据库系统中对数据访问的控制机制,而事务是指数据库系统中的一组操作单元。了解锁机制和事务是非常关键的,因为它们...

Global site tag (gtag.js) - Google Analytics