반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 상관서브쿼리
- include 지시자
- ObjectInputStream
- 메모리스트림
- first-child
- StringWriter
- include지시자
- 스레드그룸
- ThreadGroup()
- interrupt()
- 리눅스세팅
- StringReader
- String char[] 형변환
- Daemon()
- 표현 언어
- 동기화
- interrupted()
- 아이디중복
- 상관 서브 쿼리
- Linux셋팅
- isinterrupted()
- InputDialog
- Linux세팅
- include액션태그
- MemoryStream
- char[] String 형변환
- first-of-child
- sleep()메소드
- 리눅스셋팅
- ID중복
Archives
- Today
- Total
다연이네
[days17] 트랜잭션(Transaction), SavePoint 본문
반응형
transaction
- 트랜잭션(Transaction)이란 일의 처리가 완료되지 않은 중간 과정을 취소하여 일의 시작 전 단계로 되돌리는 기능이다.
- 즉, 결과가 도출되기까지의 중간 단계에서 문제가 발생하였을 경우 모든 중간 과정을 무효화하여 작업의 처음 시작 전 단계로 되돌리는 것이라 할 수 있다.
- 일의 완료를 알리는 commit과 일의 취소를 알리는 rollback이 쓰인다.
예) 계좌 이체
1) A UPDATE
2) B UPDATE 완전히 다 되던지 완전히 안되던지
--userenv : 사용자환경
select userenv('sessionid')
from dual;
스캇 계정의 다른 데이터베이스를 접속하면 다른 숫자가 뜸
select ename,job
from emp
where ename='MILLER';
scott1에서 MILLER의 JOB을 update 시키면
select ename,job
from emp
where ename='MILLER';
update emp
set job='Manager'
where ename='MILLER';
scott2에서는 update가 안되어있다.
그 후에 scott2에서 update 하면 ?
update emp
set job='SALESMAN'
where ename='MILLER';
계속 돌기만하고 결과 값이 출력이 안된다.
scott1로 가서 rollback;을 하자마자 출력된다.
+ scott2에서도 rollback 해주기~
SavePoint
SAVEPOINT는 트랜잭션 내에 세이브포인트를 만들 수 있게 해준다.
하나의 트랜잭션 내에 여러 개의 세이브포인트를 만들 수 있으며, ROLLBACK TO 세이브포인트 문을 이용하여 큰 규모의 트랜잭션 내에서 명령들의 특정한 그룹만 롤백할 수 있다.
--첫번째 DML문 수행
insert into dept values (50, '부서명', '지역명');
--a세이브포인트
savepoint apoint;
update dept
set dname = 'QC2'
where deptno=70;
--b세이브포인트
savepoint bpoint;
delete from dept
where deptno = 70;
select * from dept;
rollback; --savepoint 없으면 insert/update/delete 모두 롤백됨
rollback to savepoint apoint;
반응형
'Oracle' 카테고리의 다른 글
[days17] 동적 SQL (0) | 2020.11.23 |
---|---|
[days17] 오라클 잡과 스케줄러 (Job, Scheduler) (0) | 2020.11.23 |
[days17] PL/SQL의 패키지(Package) (0) | 2020.11.23 |
[days17] 트리거(Trigger) 예제 (0) | 2020.11.23 |
[days17] 트리거(Trigger)의 :NEW, :OLD **추가 필요 (0) | 2020.11.23 |
Comments