数据库的事务

数据库事务

事务是由相关操作构成的一个完整的操作单元,两次连续成功的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完成,被撤销的操作要重做,必须重新执行相关操作语句。

posted @   翻滚的小井蛙  阅读(59)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
点击右上角即可分享
微信分享提示