(MYSQL学习笔记4)事务的开启、提交、回滚

使用事务要注意以下三点:

1、在 MySQL 中只有使用了 Innodb 数据库引擎的数据库或表才支持事务。

2、事务处理可以用来维护数据库的完整性,保证成批的 SQL 语句要么全部执行,要么全部不执行。

3、事务用来管理 insert,update,delete 语句

MYSQL 事务处理主要有两种方法:

1、用 BEGIN, ROLLBACK, COMMIT来实现

  • BEGIN 开始一个事务
  • ROLLBACK 事务回滚
  • COMMIT 事务确认

2、直接用 SET 来改变 MySQL 的自动提交模式:

  • SET AUTOCOMMIT=0 禁止自动提交
  • SET AUTOCOMMIT=1 开启自动提交

例如:

SET AUTOCOMMIT = 0;
BEGIN;
INSERT INTO km_xtyh (YHID,YHMC) VALUE (‘asdjoi213hjsh‘,‘李四‘);
COMMIT;

解读:

先将自动提交给关闭了~然后用“BEGIN”开启事务,之后虽然是插入语句,但是还没有进行“COMMIT”操作,并没有真正的提交,该条数据只是暂时性存在数据库中(注意:此时数据库里已经有“李四”这一条数据),如果执行了"COMMIT"语句,该条数据将永久性插入数据库;

如果不执行"COMMIT"执行的是另外一个语句"ROLLBACK",则数据库中将不会存在该条记录,数据没有真正插入成功。

时间: 2024-10-10 10:50:39

(MYSQL学习笔记4)事务的开启、提交、回滚的相关文章

MySQL学习笔记02 事务autocommit自动提交

MySQL默认操作模式就是autocommit自动提交模式.这就表示除非显式地开始一个事务,否则每个查询都被当做一个单独的事务自动执行.我们可以通过设置autocommit的值改变是否是自动提交autocommit模式.通过以下命令可以查看当前autocommit模式. mysql> show variables like 'autocommit'; +---------------+-------+ | Variable_name | Value | +---------------+----

MySQL学习笔记-事务相关话题

事务机制 事务(Transaction)是数据库区别于文件系统的重要特性之一.事务会把数据库从一种一致状态转换为另一个种一致状态.在数据库提交工作时,可以确保其要么所有修改都已经保存了,要么所有修改都不保存. InnoDB存储引擎中的事务完全符合ACID的特性. 原子性(atomicity) 原子性是指整个数据库事务是不可分割的工作单位.只有使事务中所有的数据库操作执行都成功,才算整个事务成功.如果事务中任何一个SQL语句执行失败,那么已经执行成功的SQL语句也必须撤销,数据库状态应该退回到执行

MySql学习笔记(转载)

/* 启动MySQL */net start mysql /* 连接与断开服务器 */mysql -h 地址 -P 端口 -u 用户名 -p 密码 /* 跳过权限验证登录MySQL */mysqld --skip-grant-tables-- 修改root密码密码加密函数password()update mysql.user set password=password('root'); SHOW PROCESSLIST -- 显示哪些线程正在运行SHOW VARIABLES -- /* 数据库操

MySql学习笔记(一)之DQL常用查询

MySql学习笔记(一)之DQL常用查询 前言:mysql是中小型的数据库软件,SQL语言分为DDL,DCL,DML,DQL四种,在这里重点讲解DQL的单表查询. 正文:在学习mysql单表查询之前,我们先做一些准备工作. 需要安装的软件如下: 1.mysql,版本可以选择5.1或者5.5,安装过程可以参考博客:http://www.cnblogs.com/ixan/p/7341637.html 2.mysql图形化管理软件:Navicate,sqlyog(二选一,推荐使用sqlyog). 本文

mysql学习笔记 第四天

mysql引擎: archive(档案)[数据插入以后不能被修改,只读] blackhole[这种写操作是删除数据,读操作是返回空白记录] CSV[在储存数据时以逗号作为数据项之间的分隔符] example[示例(存根)储存引擎] Falcon[用来进行处理事务的储存类型] federated[用来访问远程数据表的储存引擎] InnoDB[具备外键支持功能的事务处理引擎] memory[内存里的数据表] merge[用来管理多个MyISAM数据表构成的数据表集合(merg-myisam)] my

MySQL学习笔记—SQL服务器模式汇总

MySQL学习笔记-SQL服务器模式汇总 MySQL服务器可以以不同的SQL模式来操作,并且可以为不同客户端应用不同模式.这样每个应用程序可以根据自己的需求来定制服务器的操作模式. 模式定义MySQL应支持哪些SQL语法,以及应执行哪种数据验证检查.这样可以更容易地在不同的环境中使用MySQL,并结合其它数据库服务器使用MySQL. 你可以用–sql-mode="modes"选项启动mysqld来设置默认SQL模式.如果你想要重设,该值还可以为空(–sql-mode ="&q

MySQL学习笔记之七:数据的备份和恢复

我们知道,数据是一个企业IT架构的核心,为了防止因某些意外原因造成数据遗失或其它一些特殊目的,在平时对数据做好备份尤其重要. 一.为什么要备份 1.灾难恢复:硬件故障.软件故障.自然灾害.黑客攻击.误操作等 2.审计:有时需要知道数据在过去某个时间点是什么样的 3.测试:一个最简单的其于实际数据来测试的方法是,定期用最新的生产环境数据更新测试服务器,只要把备份文件还原到测试服务器即可 二.备份和恢复需要注意的要点 1.可容忍丢失多少数据 2.恢复需要在多长时间内完成 3.需要恢复什么 三.备份类

MySQL学习笔记之三 表类型

你能用的数据库引擎取决于MySQL在安装时候是如何被编译的.要添加一个新的引擎,就必须编译MySQL.仅仅为了添加一个特性而编译应用程序的想法对于Windows的开发人员来说可能有点小题大做,得不偿失,但是在Unix的世界里,这已经成为了标准.在缺省的情况下,MySQL支持三个引擎:ISAM.MyISAM和HEAP.另外两种类型InnoDB和Berkley(BDB),也常常可以使用. ISAM ISAM是一个定义明确且历经时间考验的数据表格管理方法,它在设计之初就考虑到数据库被查询的次数远远大于

MySQL学习笔记之八:使用Xtrabackup进行MySQL热备

xtrabackup是由percona提供的mysql数据库备份工具,是一款开源的能够对innodb和xtradb数据库进行热备的工具. xtrabackup对InnoDB支持热备,完全备份和增量备份:对MyISAM引擎支持温备,完全备份 一.特点: ①备份过程快速.可靠: ②备份过程不会打断正在执行的事务: ③能够基于压缩等功能节约磁盘空间和流量: ④自动实现备份检验: ④还原速度快: 二.安装: 其最新版的软件可从 http://www.percona.com/software/percon

MySQL学习笔记-锁相关话题

在事务相关话题中,已经提到事务隔离性依靠锁机制实现的.在本篇中围绕着InnoDB与MyISAM锁机制的不同展开,进而描述锁的实现方式,多种锁的概念,以及死锁产生的原因. Mysql常用存储引擎的锁机制 MyISAM和MEMORY采用表级锁(table-level locking): BDB采用页面锁(page-leve locking)或表级锁,默认为页面锁: InnoDB支持行级锁(row-level locking)和表级锁,默认为行级锁: 各种锁特点 表级锁(table-level loc