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

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

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

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

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

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

再来一个错误的例子:

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

再看,

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

2.提交事务: commit;

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

看不提交结果:

提交一下再看:

这就是提交事务。

3.回滚事务: rollback;

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

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

相关推荐
时差95338 分钟前
【面试题】Hive 查询:如何查找用户连续三天登录的记录
大数据·数据库·hive·sql·面试·database
让学习成为一种生活方式40 分钟前
R包下载太慢安装中止的解决策略-R语言003
java·数据库·r语言
Mephisto.java1 小时前
【大数据学习 | kafka高级部分】kafka的优化参数整理
大数据·sql·oracle·kafka·json·database
秋意钟1 小时前
MySQL日期类型选择建议
数据库·mysql
山海青风1 小时前
第七篇: BigQuery中的复杂SQL查询
sql·googlecloud
Dxy12393102162 小时前
python下载pdf
数据库·python·pdf
桀桀桀桀桀桀3 小时前
数据库中的用户管理和权限管理
数据库·mysql
lzhlizihang3 小时前
【Hive sql 面试题】求出各类型专利top 10申请人,以及对应的专利申请数(难)
大数据·hive·sql·面试题
BearHan3 小时前
Sqlsugar调用Oracle的存储过程
oracle·存储过程·orm
superman超哥4 小时前
04 深入 Oracle 并发世界:MVCC、锁、闩锁、事务隔离与并发性能优化的探索
数据库·oracle·性能优化·dba