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

事务

程序员文章站 2022-05-12 21:30:10
...

保证一组操作不会中途停止,要不全部执行完毕,要不都不执行。

  1. 保留点:事务处理中设置的临时点,可以回退到指定的保留点。

  2. 事务只能回退 INSERT , DELETE 与 UPDATE 语句,不能对SELECT进行回退
    —— 也没啥必要,因为查询并不会改变表中的数据。

  3. 事务中可以写 CREATE 或 DROP,但回退时这些操作并不撤销


开始与提交

关键字 BEGIN TRANSACTION 与 COMMIT TRANSACTION 完成。

通过 BEGIN 开始,通过 COMMIT 将整个事务提交。

BEGIN TRANSACTION;
UPDATE OrdersCopy SET order_num="3423424";
COMMIT TRANSACTION;

回退

通过 SAVEPOINT 设置保留点,ROLLBACK TO 回退到指定的保留点。

然后通过 ROLLBACK 回退到指定的保留点,并通过 COMMIT TRANSACTION将保留点之间的操作提交。

BEGIN TRANSACTION;
UPDATE OC SET order_num="2223332";
SAVEPOINT update1;  -- 指定保留点
UPDATE OC SET cust_id="11111";
SAVEPOINT update2;
ROLLBACK TO update1;  -- 回退到指定的保留点,并将保底点之前有事务提交
COMMIT TRANSACTION;

上述操作只会将 order_num 设置成 2223332,第二次的修改不会生效。