事务

17 阅读1分钟

事务

数据库中,通过事务来保证数据的一致性。

事务特性:

  • 原子性
  • 一致性
  • 隔离性
  • 持久性

提交/回滚

# 提交:以成功的方式结束事务
commit

# 回滚:以失败的方式结束事务
rollback

设置保存点

如果在一个事务内,想要回滚到指 定位置,不是回滚到事务的起始点,可以通过保存点(SAVEPOINT)来实现

savepoint savepoint_name;

# 回滚到指定保存点
rollback to savepoint_name;

示例

create table test(
    id number(3),
    name char(5)
);
INSERT INTO test(id,name) values(1, 'a');
INSERT INTO test(id,name) values(2, 'b');
SAVEPOINT s1;
INSERT INTO test(id,name) values(3, 'c');
INSERT INTO test(id,name) values(4, 'd');
DELETE FROM test WHERE id in (1,3);
ROLLBACK TO s1;
DELETE FROM test WHERE id in (2,4);
COMMIT;
ROLLBACK;

用来保证数据一致性的一种机制。

锁由Oracle自动管理,如一个DML操作,ORACLE默认的机制是在DML操作影响的行记录上自动加锁;当你的操作结束后会释放锁。

查询语句不会锁定任何记录,如果在查询语句后面加FOR UPDATE子句会锁定查询所影响的行记录;