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

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

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

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

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

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

再来一个错误的例子:

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

再看,

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

2.提交事务: commit;

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

看不提交结果:

提交一下再看:

这就是提交事务。

3.回滚事务: rollback;

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

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

相关推荐
山峰哥11 分钟前
造价算量系统SQL优化,慢查询从9秒压到35毫秒‌
大数据·数据库·sql·编辑器·深度优先
AC赳赳老秦23 分钟前
电力能源公开数据采集实操:用 OpenClaw 合规抓取电网电价与发电量数据,生成区域能源供需分析报告
大数据·数据库·人工智能·python·php·deepseek·openclaw
StarRocks_labs33 分钟前
StarRocks 如何查询 Paimon 半结构化数据?Variant、Shredding 与 SQL 实践
starrocks·sql·paimon·variant·shredding
Discipline~Hai1 小时前
Linux网络编程05-sqlite3数据库
linux·c语言·网络·数据库·sqlite·linux应用软件编程
青禾8371 小时前
一文入门 MySQL + MongoDB + Redis:三大数据库核心知识
数据库·mysql·mongodb
努力努力再努力wz1 小时前
【Redis入门系列】:从 RESP 协议到 redis-plus-plus:Redis 客户端编程与 C++ 接口设计
开发语言·数据库·c++·redis·分布式·缓存·架构
志栋智能1 小时前
凌晨3点的告警,如何用AI在5分钟内完成定界?
运维·服务器·数据库·人工智能·自动化
G.E.M.小白1 小时前
【SQLite3 数据库】从安装、SQL 操作到 C/C++ API 实战
数据库·oracle·sqlite3
神明不懂浪漫2 小时前
【第一章】MySQL简介
数据库·经验分享·笔记·mysql·oracle
山岚的运维笔记2 小时前
mysql 专业笔记 -- 第 14 章:GROUP BY
运维·数据库·笔记·后端·学习·mysql·dba