MySQL 事务处理
MySQL 事务
- 在MySQL中只有使用了Innodb数据库引擎的数据库或表才支持事务
- 事务处理可以用来维护数据库的完整性,保证成批的SQL语句要么全部执行,要么全部不执行
- 事务用来管理insert,update,delete语句
关于事务的术语:
- 事务(transaction):指一组SQL语句
- 回滚(rollback):指撤销指定SQL语句的过程
- 提交(commit):指将未存储的SQL语句结果写入到数据库中
- 保留点(savepoint):指事务处理中设置的临时占位符,可以对它进行回滚。
事务处理的关键在于将SQL语句组分解为逻辑块,并明确规定数据何时应该回滚,何时应该提交。
回滚事务
start transaction;/*开始事务*/ delete from t_tableA where id=1; rollback;/*事务回滚*/
提交事务
start transaction; delete from t_tableA where id=1; commit;/*提交事务*/
保留点
start transaction; delete from t_tableA where id=4; savepoint s1;/*声明一个保留点*/ delete from t_tableA where id=5; rollback to s1;/*回滚到s1保留点*/
事务的四个特征(ACID属性)
- 原子性(Atomic):组成事务的处理语句组成了一个逻辑单元,这是最小的逻辑单元。
- 一致性(Consistent):在事务处理之前和之后,数据是一致的。
- 隔离性(Isolated):一个事务的处理对另一个事务的处理没有影响。
- 持续性(Durable):当事务处理成功后,其结果在数据库中被永久记录下来。
JDBC中使用事务
Class.forName("com.mysql.jdbc.Driver"); Connection conn = DriverManager.getConnection("jdbc:mysql:///db", "root", "root"); conn.setAutoCommit(false);//取消自动提交 PreparedStatement stat = null; try { String sql = "INSERT INTO t_user(`name`) VALUES('xyz1')"; String sql2 = "INSERT INTO t_user(`name`) VALUES('xyz2')"; stat = conn.prepareStatement(sql); stat.executeUpdate(); Savepoint sp1 = conn.setSavepoint(); stat = conn.prepareStatement(sql2); stat.executeUpdate(); conn.rollback(sp1);//回滚到保留点,即跳过了sql2语句 conn.commit(); } catch (Exception e) { e.printStackTrace(); conn.rollback();//出现异常,SQL不执行 } finally { stat.close(); conn.close(); }
相关推荐
### MySQL事务处理用法与实例详解 #### 一、事务的概念及重要性 在数据库管理中,事务(Transaction)是指一系列作为一个整体的操作序列。这些操作要么全部成功,要么全部失败,不能只执行其中的一部分。事务处理...
nodejs + mysql 事物处理问题 呵呵 看了就知道 记得npm install啊 需要的东西啊 本想免费 苦于没积分 ,需要的的同学,给点分吧
"Java实现的mysql事务处理操作示例" 本文主要介绍了Java实现的mysql事务处理操作,结合实例形式较为详细的分析了Java基于JDBC操作mysql数据库实现事务处理的相关概念、操作技巧与注意事项。 事务处理是数据库操作...
关于mysql的事务处理 public static void StartTransaction(Connection con, String[] sqls) throws Exception { if (sqls == null) { return; } Statement sm = null; try { // 事务开始 System....
MySQL 事务处理是数据库管理系统中的关键特性,主要用于确保数据操作的安全性和一致性。在MySQL中,事务主要应用于支持事务的存储引擎,如InnoDB或BDB。这些存储引擎能够提供事务的四大特性:原子性(Atomicity)、...
根据提供的文件信息,本文将详细解释MySQL事务处理的相关知识点,并结合具体的示例代码进行说明。 ### MySQL事务处理基础 在数据库操作中,事务处理是非常重要的一个环节,它能够确保数据的一致性和完整性。MySQL...
本详细讲解将深入探讨MySQL事务处理的各个方面,并通过实例帮助你更好地理解和应用。 一、事务的基本特性 事务具有四大特性,也被称为ACID属性: 1. 原子性(Atomicity):事务中的所有操作要么全部完成,要么全部...
MySQL事务处理详解主要涵盖事务的基本概念、特性以及事务隔离级别,这些都是数据库管理中至关重要的概念。MySQL中的事务主要用于处理大量且复杂的操作,确保数据的一致性和完整性。 首先,事务是MySQL数据库操作的...
MySQL事务处理与并发访问.pdf
本文实例讲述了php实现mysql事务处理的方法。分享给大家供大家参考。具体分析如下: 要实现本功能的条件是环境 mysql 5.2 /php 5 支持事务的table 类型,需要InnoDB,有了这些条件你就可以做上面的实现了,这个事物回滚...
MySQL中的事务处理是数据库管理的重要组成部分,主要目的是确保数据的一致性和完整性。事务是一组SQL语句,它们作为一个单元执行,要么全部成功,要么全部回滚,这确保了原子性。事务处理的引入是为了解决多用户、多...
MySQL的事务处理是数据库管理中的核心功能,尤其在软件开发中,确保数据一致性、安全性和可靠性至关重要。事务处理允许数据库操作作为一个不可分割的整体执行,确保数据的完整性和一致性。在人员管理系统等应用中,...
接下来,我们来看PHP下PDO的MySQL事务处理实例。以下是几个关键步骤: 1. **关闭自动提交**:在开始事务之前,需要关闭自动提交模式。在PDO中,可以通过设置`PDO::ATTR_AUTOCOMMIT`属性为0来实现。例如: ```php ...
MySQL事务处理是数据库管理系统中的关键特性,特别是在需要确保数据完整性和一致性的商务级应用中。事务是一组数据库操作,它们被视为单个逻辑工作单元,必须全部成功执行或全部不执行。这种机制对于防止数据错误和...
综上,MySQL事务处理是数据库系统中不可或缺的部分,它通过ACID特性、隔离级别、MVCC和锁机制确保数据的一致性,并在Java、Spring等开发环境中提供了便捷的事务管理接口。理解并合理使用这些概念和机制,对数据库...