什么是事务?事务有哪些特点?

事务就是多条sql语句组成的工作逻辑单元

事务的特点原子性、一致性、隔离性、持久性

事务对SQL 语句进行分组,使它们要么全部提交 ( 这意味着它们被应用到数据库 ) ,要么全部回滚 ( 这意味着它们从数据库撤消 ) 。

只要有一条 SQL 语句执行失败,则已执行的 SQL 语句会回滚到执行之前的状态,这样就保证了数据库数据的一致性,不至于产生混乱的数据。

•原子性 Atomicity

事务必须是原子工作单元,对其进行的数据修改,要么全都执行,要么全都不执行。

强调事务的不可分割 。

例如: 银行转账, A 向 B 转账 1000 元, 要在A 账户上 减少 1000 元,同时要在 B 账户上 增加 1000 元。 并且记录一条转账记录。 要么同时执行,要么都不执行更改,以确保整个事务是一个原子工作单元。

•一致性 Consistency

事务将数据库从一个一致状态转移到另一个一致状态。

强调事务执行前后, 数据库的完整性保持一致 。

例如, 银行转账,A 向 B 账号转账 1000 元,是不允许看到 A 的账号减少 1000 , B 的账号还没来得及增加 1000 的中间状态。

•隔离性 Isolation

一个事务不会看到另外一个还未完成的事务产生的结果。每个事务就像在单独、隔离的环境下运行一样。

强调事务并发访问 , 一个事务的执行 , 不应该受到另一个事务的打扰。

例如,一个用户正在更新员工表。其他用户不会看到对员工表所做的未提交更改。因此,在用户看来,事务似乎是串行执行的。

•持久性 Durability

提交的事务所做的更改是永久性的。 不会因为系统失败而丢失。强调事务结束 , 数据永久保存数据库中 。事务完成后,数据库通过其恢复机制确保事务中的更改不会丢失。

posted @   光●中  阅读(913)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示