事务
数据库中,通过事务来保证数据的一致性。
事务特性:
- 原子性
- 一致性
- 隔离性
- 持久性
提交/回滚
# 提交:以成功的方式结束事务
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子句会锁定查询所影响的行记录;