事务基本的手动操作指令

6 篇文章 0 订阅
4 篇文章 0 订阅
这篇博客介绍了如何手动操作MySQL事务,包括创建表、查看autocommit状态、开始事务、插入数据、设置回滚点、回滚和提交事务,并强调了truncate和新增表字段操作无法回滚的事实。
摘要由CSDN通过智能技术生成

事务基本的手动操作指令

首先建个表压压惊:
CREATE TABLE `test1` (
  `id` int ,
  `age` int DEFAULT NULL,
  `inttl` int DEFAULT NULL,
  `test` int DEFAULT NULL,
  `testc` char(2) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3;
先看一下数据库用的时什么引擎
show table status from dev where name = "test1"; -- 产看数据库dev的表test1使用的存储引擎

可以看到我的表是innoDb引擎的
在这里插入图片描述

然后看一下autocommit的值,off表示自动提交事务是关闭的,on表示自动提交事务是开启的
show variables like '%autocommit%'; -- 查看autocmmit的值

在这里插入图片描述

开始事务

当自动提交事务的状态是开启的时候,只用使用start transaction才能够 回滚(rollback)和提交(commit)。

start transaction; -- 开始事务

在这里插入图片描述

开始事务后执行正常的insert语句
INSERT INTO `test1`(`age`, `inttl`, `test`, `testc`) VALUES (1, 1, 2, 'm');

在这里插入图片描述

可以回滚,回滚就是这个事务的所有操作都清除并且结束事务。
rollback ; -- 回滚

在这里插入图片描述

然后再查一下数据就没有了

在这里插入图片描述

也可以设值一个回滚的点
savepoint point1; -- 保存还原点

先插入一条数据然后定一个还原点
在这里插入图片描述

然后定还原点:

在这里插入图片描述

然后再插入数据:

在这里插入图片描述

然后定点回滚
rollback to point1; -- 回滚到某个还原点

在这里插入图片描述

只有一条数据了:

在这里插入图片描述

最后提交事务,提交后这个事务也就完了
commit; -- 提交事务

在这里插入图片描述

回滚对于truncate是无法回滚的哦,感兴趣的可以试一下。
truncate test1; -- 清空表
delete from test1; -- 删除表数据
#回滚,对于truncate无法回滚
rollback; -- 回滚
对于新增表字段也是无法回滚的,语句贴在下面了,可以试一下。
alter table test1 add description varchar(50); --新增字段
#回滚,对于修改表结构的语句无法回滚
rollback;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值