① create as select ~~~~
② insert into ~~~~
에서 rollback하면 ②번은 지워지고 ①번만 살아있게 된다.
왜 ①번은 살아있게 될까 ?
이유: DDL(create, alter, drop, rename 등등)뒤에는 Auto commit이 붙어져있기 때문
아래 ①번부터 ⑧번까지 명령어를 수행하게되면 어떻게 될까?
① create as select ~~~~
② insert into ~~~~ => ④번때매 롤백됨
③ select => 트랜잭션아님
④ rollback => 롤백을 수행하면 사라짐.
⑤ insert into ~~~~ => ⑧번때매 롤백됨
⑥ insert into ~~~~ => ⑧번때매 롤백됨
⑦ select => 트랜잭션아님
⑧ rollback
결국 !! 이럴경우 ①번만 남게된다
'데이터베이스 > Oracle' 카테고리의 다른 글
rownum() 은 1번을 건너뛰고 출력할 수 없음 (0) | 2022.12.02 |
---|---|
[Oracle] 공백을 기준으로 문자열 자르기 (0) | 2022.12.02 |
[Oracle] '_(언더바)'가 들어간 데이터 찾기 (0) | 2022.12.02 |
HR 계정 로그인 / scott 계정 생성 (0) | 2022.11.29 |
설치 (0) | 2022.11.29 |