SQL事务的开启,提交和回滚

在处理数据库数据的时候会出现一种情况就是我们删除两个关联的表其中一个表的信息,另一个表也需要改动,但是我们SQL语句在同时更改两个表的同时,难免会出现一个表修改成功,另一个出现错误,这时候表与表之间就会出现矛盾,就用到了回滚,为了更安全的修改表的数据,就有了事务。

1.开启事务: start transaction; / begin ;

举个例子,我要把职务表里面的职务删除一个,在操作正确的情况下是这样的:

id是1的部门已经没有了,

同时,1号职务的员工也没有了,

再来一个错误的例子:

这样就会出现一种员工选择2号职位但是职位表里面却没有2号职位

再看,

所以我们就要在处理这种数据之前要开启一个事物作为保障,如果失败还可以回滚事务,作为应急。

2.提交事务: commit;

开启一个事务之后,在运行完指定指令之后要提交事务,否则会可视化界面跟后天数据不同步,举个例子:

看不提交结果:

提交一下再看:

这就是提交事务。

3.回滚事务: rollback;

这相当于一个保险栓,防止数据操作一般出现错误而造成乌龙,看例子:

这里错误就不展示了,创建事务展示过了,直接回滚:

相关推荐
星空下的曙光44 分钟前
MySQL → SQL → DDL → 表操作 → 数据类型 知识链整理成一份系统的内容
数据库·sql·mysql
简单的话*1 小时前
如何查看SQL Server的当前端口
数据库·sqlserver
独泪了无痕6 小时前
一文搞懂MyBatis中的TypeHandler
数据库·后端·mybatis
三体世界8 小时前
Mysql基本使用语句(一)
linux·开发语言·数据库·c++·sql·mysql·主键
Giser探索家8 小时前
低空智航平台技术架构深度解析:如何用AI +空域网格破解黑飞与安全管控难题
大数据·服务器·前端·数据库·人工智能·安全·架构
chillxiaohan9 小时前
GO学习记录五——数据库表的增删改查
数据库·学习·golang
一颗星的征途11 小时前
java循环分页查询数据,任何把查询到的数据,分批处理,多线程提交到数据库清洗数据
java·数据库·mysql·spring cloud
NightReader12 小时前
如何解决WordPress数据库表损坏导致的错误
数据库
Warren9813 小时前
MySQL,Redis重点面试题
java·数据库·spring boot·redis·mysql·spring·蓝桥杯
青鱼入云14 小时前
mysql查询中的filesort是指什么
数据库·mysql