事务处理
在整个开发是一个重要的 概念,大家必须去理解的操作。
什么事务处理?
事务的核心概念:一 个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');