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

这篇具有很好参考价值的文章主要介绍了SQL事务的开启,提交和回滚。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

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

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

SQL事务的开启,提交和回滚,Java新手村,sql,数据库,oracle

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

SQL事务的开启,提交和回滚,Java新手村,sql,数据库,oracle

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

SQL事务的开启,提交和回滚,Java新手村,sql,数据库,oracle

再来一个错误的例子:

SQL事务的开启,提交和回滚,Java新手村,sql,数据库,oracle

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

SQL事务的开启,提交和回滚,Java新手村,sql,数据库,oracle

 再看,

SQL事务的开启,提交和回滚,Java新手村,sql,数据库,oracle

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

2.提交事务: commit;

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

SQL事务的开启,提交和回滚,Java新手村,sql,数据库,oracle

看不提交结果:

SQL事务的开启,提交和回滚,Java新手村,sql,数据库,oracle

SQL事务的开启,提交和回滚,Java新手村,sql,数据库,oracle

提交一下再看:

SQL事务的开启,提交和回滚,Java新手村,sql,数据库,oracle

SQL事务的开启,提交和回滚,Java新手村,sql,数据库,oracle

SQL事务的开启,提交和回滚,Java新手村,sql,数据库,oracle

这就是提交事务。

3.回滚事务: rollback;

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

SQL事务的开启,提交和回滚,Java新手村,sql,数据库,oracle

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

SQL事务的开启,提交和回滚,Java新手村,sql,数据库,oracle

SQL事务的开启,提交和回滚,Java新手村,sql,数据库,oracle 

SQL事务的开启,提交和回滚,Java新手村,sql,数据库,oracle文章来源地址https://www.toymoban.com/news/detail-756275.html

到了这里,关于SQL事务的开启,提交和回滚的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【建议收藏】数据库 SQL 入门——事务(内附演示)

    🙋‍♂️作者简介:生鱼同学,大数据科学与技术专业硕士在读👨‍🎓,曾获得华为杯数学建模国家二等奖🏆,MathorCup 数学建模竞赛国家二等奖🏅,亚太数学建模国家二等奖🏅。 ✍️研究方向:复杂网络科学 🏆兴趣方向:利用python进行数据分析与机器学习,数学建模竞

    2023年04月23日
    浏览(41)
  • spring事务里面开启线程插入,报错了是否会回滚?

    一道非常有意思的面试题目。大概是这样子的,如果在一个事务中,开启线程进行插入更新等操作,如果报错了,事务是否会进行回滚 示例1 示例2 element.setfElementId(10L); 为主键。SQL在第一次插入id=10的时候是没有问题的,在第二次插入id=10的时候,由于主键冲突了,导致报错,

    2023年04月12日
    浏览(54)
  • SpringBoot项目中控制线程池、多线程事务提交、回滚的方式

    场景: 1、由于多线程每个线程都是一个异步任务,所以每个线程都是一个单独的事务,通常使用的声明式事务 @Transactional() 是无法控制多线程中事务的 2、所以只能另寻解决方式 解决: 一、基于TransactionStatus集合来控制多线程事务提交(推荐此方式) 1、代码案例

    2024年02月15日
    浏览(51)
  • Sql Server 数据库事务与锁,同一事务更新又查询锁?期望大家来解惑

    我有一个People表,有三行数据: 如果我们没详细了解数据库事务执行加锁的过程中,会不会有这样一个疑问:如下的这段 SQL 开启了事务,并且在事务中进行了更新和查询操作。 我们知道sql server数据库的默认事务级别是READ COMMITTED(已提交的读取),我们再看一下已提交读事

    2024年02月01日
    浏览(56)
  • Sql Server 数据库事务与锁,同一事务更新又查询锁的变化,期望大家来解惑!

    我有一个People表,有三行数据: 如果我们没详细了解数据库事务执行加锁的过程中,会不会有这样一个疑问:如下的这段 SQL 开启了事务,并且在事务中进行了更新和查询操作。 我们知道sql server数据库的默认事务级别是READ COMMITTED(已提交的读取),我们再看一下已提交读事

    2024年02月01日
    浏览(73)
  • 【SQL Server】数据库开发指南(八)高级数据处理技术 MS-SQL 事务、异常和游标的深入研究

    本系列博文还在更新中,收录在专栏:#MS-SQL Server 专栏中。 本系列文章列表如下: 【SQL Server】 Linux 运维下对 SQL Server 进行安装、升级、回滚、卸载操作 【SQL Server】数据库开发指南(一)数据库设计的核心概念和基本步骤 【SQL Server】数据库开发指南(二)MSSQL数据库开发对

    2024年02月07日
    浏览(92)
  • DM8:达梦数据库开启SQL日志sqllog

    在使用数据库过程中,有时候想要查看数据库执行的SQL日志,由于V$SESSIONS 系统视图默认保留10000条,不满足需求,可以配置开启SQLLOG; 登陆达梦数据库管理工具或 disql 执行命令 开启后注意观察数据库log目录的dmsql开头的日志文件,是否达到256MB后正常切换,达到20个日志文件

    2024年02月10日
    浏览(62)
  • PyQt5数据库开发1 4.1 SQL Server 2008 R2如何开启数据库的远程连接

    文章目录 前言 步骤/方法 1 使用windows身份登录 2 启用混合登录模式

    2024年02月22日
    浏览(70)
  • 使用Docker和AWSStepExecution:实现快速部署和回滚

    《使用Docker和AWS Step Execution实现快速部署和回滚》 1.1. 背景介绍 随着云计算和容器化技术的普及,软件开发的速度和效率得到了很大的提升。Docker作为一款流行的容器化技术,可以快速将应用程序打包成独立的可移植容器镜像,然后通过自动化工具在各种环境下部署和运行。

    2024年02月06日
    浏览(51)
  • Git第十三讲 Git重置和回滚更改

    在使用Git时,我们有时可能会犯错或者需要撤销之前的提交或更改。Git提供了一些强大的命令来重置和回滚更改,帮助我们管理项目的版本控制。本文将介绍如何使用Git进行重置和回滚操作。 重置(Reset)命令允许我们将分支的指针移动到指定的提交,同时可以选择如何处理

    2024年02月09日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包