欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

SQL学习笔记——事务(基本概念,基础语句,四个特性)

程序员文章站 2022-07-04 23:47:20
...

1、事务就是需要在同一个处理单元中执行的一系列更新处理的集合,一个事务中包含多少个更新处理或者包含哪些处理,在DBMS 中并没有固定的标准,而是根据用户的要求决定的。

  • begin/start transaction:创建事务。
  • commit:提交处理。提交事务包含的全部更新处理的结束指令,一旦提交,就无法恢复到事务开始前的状态了。
  • rollback:取消处理。一旦回滚,数据库就会恢复到事务开始之前的状态。
--例子1,创建事务和提交处理
start transaction;

update product
set sale_price = sale_price - 1000
where product_name = '运动T恤';
-- 将运动T恤的sale_price降低1000日元

update product
set sale_price = sale_price + 1000
where product_name = 'T恤衫';
-- 将T恤衫的sale_price上浮1000日元

commit;

--例子2:创建事务和回滚取消处理
start transaction;

update product
set sale_price = sale_price - 1000
where product_name = '运动T恤';
-- 将运动T恤的sale_price降低1000日元

update product
set sale_price = sale_price + 1000
where product_name = 'T恤衫';
-- 将T恤衫的sale_price上浮1000日元
rollback;

2、事务的ACID特性:

  • 原子性(Atomicity):原子性是指在事务结束时,其中所包含的更新处理要么全部执行,要么完全不执行。
  • 一致性(Consistency):一致性指的是事务中包含的处理要满足数据库提前设置的约束,也就是事务将数据库从一种状态转变为下一种一致的状态。在事务的前后,数据库的完整性约束没有被破坏。同时。保证在一个事务中的多次操作的数据中间状态对其他事务不可见的。
  • 隔离性(Isolation):隔离性指的是保证不同事务之间互不干扰的特性。该特性保证了事务之间不会互相嵌套。此外,在某个事务中进行的更改,在该事务结束之前,对其他事务而言是不可见的。
  • 持久性(Durability):事务一旦提交,那么就是永久性的,不会因为宕机等故障导致数据丢失。