事务处理
在整个开发是一个重要的 概念,大家必须去理解的操作。

 

什么事务处理?
事务的核心概念:一 个session所 进行的所有更新操作要么 一起 成功,要么一起失败,事务本书 具有:原子性,一致性,隔离性,持久性
要么一起成功,要么一起失败

事务提交了 ,才 真正的发出更新命令。

insert into myemp (empno, ename,hiredate,job, sal) values ( 1234,'ztt',sysdate ,'cleck',800);
update myemp set sal=5000 where empno=1234;
savepoint a;
insert into myemp (empno, ename,hiredate,job, sal) values ( 1256,'z',sysdate ,'cleck',800);
update myemp set job='总监' where empno=1256;
savepoint b;
delete from myemp;

 

返回保持点 ,
rollback to savepoint a;

保存点的意义不大,多数是用rollback

自动提交
set autocommit on /off
尽可能不要自动提交。

 

锁的产生:
锁有两种锁:行级锁定(同一行,一个用户更新还没提交,另一个用户要更新同一行就需要等,直到第一个用户提交。),
表级锁定(同一表中,一个用户更新没提交,另一个用户更新同一张表就得等,直到第一个用户提交才能更新提交)

使用两个数据字典表查看信息,直接使用select就可以。
出现锁的情况,下面就擦看锁的情况,要sys超级管理员。看有没有这个锁。

 

做到数据管理才会用到:
管理员查看该锁的情况

select * from v$locked_object;

select session_id,oracle_username,process from v$locked_object ;
session是管理员分配,知道id也无法解除锁定

比如找到被锁的id
select serial#, lockwait, status from v$session where sid in( 65,357)

kill进程,来解决锁
ALTER SYSTEM KELL SESSION ('653143');