十二、MySQL的事务

1、关于存储引擎

1.1、什么是存储引擎?

根据前台部分的指示,完成查询和文件操作等工作的功能,即“后台”部分。这个后台部分称为存储引擎。

1.2、存储引擎的种类

MySQL中可以使用的主要存储引擎:

  1. MyISAM。以前版本(MySQL5.4或5.4之前)中的默认存储引擎。虽然能够高速运行,但是不支持事务和外键。
  2. InnoDB。MySQL5.5或者更高版本的默认存储引擎。是唯一一个支持事务的存储引擎。
  3. BLACKHOLE。写入的任何数据都会消失,查询始终返回空结果。主要用于复制。
  4. MERGE。将多个MyISAM表作为一个表进行处理。也称为MRG_MyISAM。
  5. CSV。将数据的实体保存为CSV(逗号分隔)格式的文本文件。改文件可以直接通过Excel等打开。
  6. MEMORY。因为数据全部存储在了内存中,所以处理速度非常快。主要作为从临时工作区和其他表中提取的数据的读取专用缓存使用。不支持事务。
  7. ARCHIVE。虽然可以通过压缩来存储大量数据,但是仅支持INSERT和SELECT。

2、设置存储引擎

2.1、确认存储引擎

格式:

SHOW CREATE TABLE 表名;

演示:

2.2、修改存储引擎

格式:

ALTER TABLE 表名 ENGINE=MyISAM;

演示:

3、什么是事务?

将多个操作作为单个逻辑工作单元处理的功能称为事务(transaction)。

当事务开始之后的处理结果反映到数据库中的操作称为提交(commit),不反映到数据库中而是恢复为原来状态的操作称为回滚(rollback)。

4、使用事务

4.1、执行前的注意事项

  1. DROP等命令是不能执行回滚操作的(无法复原)。
  2. 存储引擎为MyISAM的表无法使用事务功能,因为MyISAM不支持事务和外键。
  3. 目前,唯一支持事务功能的存储引擎是InnoDB。

4.2、开启事务

(1)首先显示测试表tb表中的数据。

(2)执行开启事务命令

格式:

START TRANSACTION;

或者也可以输入BEGIN或BEGIN WORK。

演示:

(3)删除表tb中所有的记录

演示:

4.3、确认表的内容

演示:

4.4、回滚恢复

格式:

ROLLBACK;

演示:

可以看到,记录被顺利复原了。

当执行“ROLLABCK;”是,事务会被关闭。如果下次再使用事务,必须使用命令开启事务。

5、自动提交功能

在MySQL中执行命令,处理通常会直接提交。也就是说,所有命令都会自动COMMIT。这种自动进行提交的功能,称为自动提交功能(auto commit)。

当存储引擎为InnoDB时,如果执行了START TRANSACTION(或BEGIN),在执行COMMIT命令之前就不会提交。

5.1、关闭自动提交功能

格式:

SET AUTOCOMMIT=0;

演示:

验证:

需要注意的是,在自动提交功能关闭的状态下,如果没有进行COMMIT就退出MySQL,工作内容就不会反映到数据库中。

5.2、启动已关闭的自动提交功能

格式:

SET AUTOCOMMIT=1;

演示:

5.3、如何确认当前自动提交功能的模式?

我们可以通过SELECT @@AUTOCOMMIT确认当前自动提交功能的模式。如果是开启状态,则显示为“1”,如果是关闭状态,则显示为“0”。

格式:

SELECT @@AUTOCOMMIT;

演示:

6、显示当前可用的存储引擎

格式:

SHOW ENGINES;

演示:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值