하나의 트랜잭션은 commit과 rollback을 만나면 끝난다.
COMMIT 또는 ROLLBACK 명령으로 직접 트랜잭션을 완성하거나 취소할 수도 있지만,
다음과 같은 경우에는 자동으로 트랜잭션이 종료됩니다.
DDL(CREATE, ALTER, DROP) 명령어를 실행할 때
DCL(GRANT, REVOKE) 명령어를 실행할 때
Deadlock같은 특정 Error를 만날 때
SQL*Plus를 종료할 때
by 란주
[2020.12.29 16:40:49]
LOCK
특정 세션에서 조작 중인 데이터는 트랜잭션이 완료되기 전까지 다른 세션에서 조작할 수 없는 상태가 된다. (데이터가 잠김)
조작 중인 데이터를 다른 세션은 조작할 수 없도록 접근을 보류시키는 것
다른 세션에서 INSERT 등의 명령을 실행할 수가 없습니다.
by 마농
[2020.12.29 18:03:31]
질문1. 네.
질문2. 네.
질문3. 네. 하나의 트랜젝션 안에 여러개 DML 포함
질문4. 네.
댓글1. 오라클에 대한 설명이네요.
- 대부분 비슷하지만 약간 차이가 있을 수 있습니다.
- 오라클의 경우 DDL 하면 커밋이 되며 트랜젝션이 종료되지만
- MSSQL 의 경우 BEGIN TRAN 상태에서 DDL 도 롤백이 가능합니다.
- PostgreSQL 은 어떨지 모르겠네요.
by 란주
[2020.12.30 21:52:01]
답변 영광입니다 마농님
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.