首页 > 数据库 >数据库的事务

数据库的事务

时间:2023-07-12 14:56:48浏览次数:41  
标签:事务 数据库 撤销 提交 回退 操作

数据库事务

事务是由相关操作构成的一个完整的操作单元,两次连续成功的commit或者rollback之间的操作,成为一个事务,在一个事务内,数据的修改一起提交或撤销,如果发生故障或系统错误,整个税务也会自动撤销。

数据库事务的四大特性

  • 原子性:原子性是指事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生。

  • 一致性:如果事务执行之前数据库是一个完整的状态,那么事务结束后,无论事务是否执行成功,数据仍然是一个完整的状态。数据库的完整状态:当一个数据库中的所有数据都符合数据库中所定义的所有约束,此时可以称数据库是一个完整的状态。

  • 隔离性:多个用户并发访问数据库时,一个用户的事务不能被其他用户的事务所干扰,多个并发事务之间数据要互相隔离

  • 持久性:指一个事务一旦被提交,他对数据库的影响是持久性的

数据库事务的应用
数据库事务处理可分为隐式和显示两种。显示事务操作通过命令实现,隐示事务由系统自动完成提交或撤销(回退)工作,无需用户的干预。

隐示提交的情况包括:当用户正常退出SLQPLUS或执行CREATE ,DROP ,GRANT ,REVOKE等命令时会发生事务的自动提交

还有一种情况,如果把系统的环境变量AUTOCOMMIT设置为on(默认为OFF)则每当执行一条INSERT,DELETE或UPDATE命令对数据进行修改后,就会马上自动提交,设置格式如下

set AUTOCOMMIT ON/OFF

隐示回退的情况:当异常结束SQLPLUS或系统发生故障时,会发生事务的自动回退

显示事务处理的数据库操作语句

语句描述
COMMIT 数据库事务提交,将变化写入数据库
ROLLBACK 数据库事务回退,撤销对数据的修改
SAVEPOINT 创建保存点,用户事务的阶段回退。(大数据操作时设置保存点,如果出现异常。可只回退部分)

commit操作把多个步骤对数据库修改,一次性的永久写入数据库,代表数据库事务的成功执行,rollback操作在发生问题时,把对数据库已经做出的修改撤销。回退到修改前的状态。在操作过称中一旦发生问题,如果还没提交操作,则随时可以使用ROLLBAK来撤销前面的操作。

savepoint则用户在事务中建立一些保存点,ROLLBACK可以使操作回退到这些点上,而不必撤销回退的全部操作。一旦commit完成,就不能用rollback来取消已经提交的操作,一旦rollback完成,被撤销的操作要重做,必须重新执行相关操作语句。

标签:事务,数据库,撤销,提交,回退,操作
From: https://www.cnblogs.com/xjianbing/p/17547482.html

相关文章

  • C#压缩Access数据库操作
    方法如下///<summary>///压缩数据库///</summary>///<paramname="dbFileName"></param>publicstaticvoidCompactAccessDB(stringdbFileName){try{......
  • 数据库的分类,范式以及ER抽象设计
    数据库的分类小型数据库:access、mysql、oraclesqlserver微软CC++C#中型数据库mysql、oraclesqlserve大型数据库分布式oracleDB2NOSQL列存储redis内存数据库以上都是关系型数据库,2维表的形式存储数据---------------------------------------------------......
  • 面试官:为什么数据库连接池不采用 IO 多路复用?
    今天我们聊一个不常见的Java面试题:为什么数据库连接池不采用IO多路复用?这是一个非常好的问题。IO多路复用被视为是非常好的性能助力器。但是一般我们在使用DB时,还是经常性采用c3p0,tomcatconnectionpool等技术来与DB连接,哪怕整个程序已经变成以Netty为核心。这到底是为......
  • 13-MongoDB 集成:如何在响应式应用中访问 NoSQL 数据库
    上一讲开始,我们进入了响应式数据访问这一模块的学习,并且引出了Spring家族中专门用于实现数据访问的SpringData框架及其响应式版本。我们知道SpringData支持多种响应式Repository用来构建全栈响应式编程模型,而MongoDB就是其中具有代表性的一种数据存储库。今天,我就将结......
  • 2023可信数据库发展大会成功召开!巨杉数据库参编《数据库发展研究报告(2023年)》
    7月4日,由中国通信标准化协会和中国信息通信研究院主办,大数据技术标准推进委员会承办,InfoQ联合主办的“2023可信数据库发展大会”主论坛在北京国际会议中心隆重召开。大会以“自主创新引领”为主题,邀请行业内近百位演讲专家围绕数据库技术、产业和生态热点进行研讨,并重磅发布了多......
  • druid数据库与连接池
    druid.propertiesurl=jdbc:mysql://localhost:3306/db01?rewriteBatchedStatements=trueusername=rootpassword=1234driverClassName=com.mysql.cj.jdbc.DriverinitialSize=10maxActive=20maxWait=1000filters=walldruidTestpackageDruid;//引入jar包import......
  • springcloud -分布式事务解决方案 seata 分布式id生成方案
     使用三个服务来进行演示三个服务的共同部分 pom相关依赖 <!--nacos--> <dependency>   <groupId>com.alibaba.cloud</groupId>   <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> </dependency> <!--seata-->......
  • 数据库存储引擎介绍
    存储引擎输入:showengines;#查看MySQL中的储存引擎有哪些MySQL总共支持9种存储引擎,主要需要了解的有3种:1.MyISAM: 它是MySQL5.5及之前的版本默认的存储引擎,它的存取速度更快,但是数据相对InnoDB不够安全 使用该引擎产生三个文件 .frm:这个文件存表结构 .MYD:......
  • MySQL 数据库初体验
    目录一、数据库的基本概念1.数据2.表3.数据库4.数据库管理系统5.数据库系统原理二、数据库的发展数据库一代数据库二代数据库三代三、主流的数据库介绍1.SQLServer(微软公司产品)2.Oracle(甲骨文公司产品)3.DB2(IBM公司产品)4.MySQL(甲骨文公司收购)四、关系型数据库五、非关系......
  • 数据库基本操作
    目录一、SQL语句管理二、常用的数据类型三、基本操作1.查看当前服务器中的数据库2.创建新的数据库3.在数据库中创建新的数据表4.向数据表中插入数据记录5.查看表中所有数据记录6.按字段查找数据表中的记录7.查找数据表中指定的记录8.查找指定记录的指定字段9.按记录范围......