2025. 6. 20. 13:07ㆍ자격증/SQLD - 취득완료
DDL문은 자동 Commit이 들어있다.
하지만, 툴(TOOL)마다 설정하는 부분이 존재한다.

/* 1.트랜잭션 / 2.데이터사전 / 3.인덱스 / 4.시퀀스
[ 1. 트랜잭션 ]
- 트랜잭션은 데이터 처리에서 논리적인 하나의 작업 단위를 의미한다.
- ALL or Nothing : 여러개의 명령어 집합이 정상적으로 처리되면 정상종료하고,
명령어들중 하나라도 잘못된다면 전체를 취소한다.
- DML 작업이 성공적으로 처리되었다면 COMMIT을,
취소해야 한다면 ROLLBACK 명령을 실행한다.
ROLLBACK : COMMIT 후에 취소가 되지 않는다.
- DDL(테이블생성, 수정), DCL(권한)문이 실행되는 경우에는 자동으로 COMMIT 된다. COMMIT 할 필요 없다.
- COMMIT - 트랜잭션의 처리과정을 반영하여 변경된 내용을 영구저장한다. 모든 작업들의 정상처리확정 명령어다.
INSERT, UPDATE, DELETE(즉 DML) 후 COMMIT을 해야 한다.
- LOCK : 특정 세션에서 조작중인 데이터는 트랜잭션이 완료(COMMIT, ROLLBACK)되기 전까지 다른 계정에서
조작할 수 없도록 접근을 보류시키게 된다. 즉 데이터가 '잠금현상'이 일어난다.
트랜잭션이 완료(COMMIT, ROLLBACK)가 되면 LOCK이 풀리게 된다.
주의 : WHERE절을 지정하지 않은 UPDATE, DELETE문일 경우에는 테이블의 모든행이 LOCK 상태가 된다.
- DBeaver 툴에서는 savepoint가 작동안됨
- SAVEPOINT - 현재의 트랜잭션을 작게 분할한다. 대소문자 구별함
저장된 SAVEPOINT는 ROLLBACk TO SAVEPOINT 문을 사용하여 표시한 곳까지 롤백할 수 있다.
1) SAVEPOINT S1; -- S1 : SAVEPOINT명
SAVEPOINT S2; -- S2 : SAVEPOINT명0
2) ROLLBACk TO S1; -- S1 : SAVEPOINT명
*/


'자격증 > SQLD - 취득완료' 카테고리의 다른 글
| [에러 정리] (0) | 2025.06.20 |
|---|---|
| DML - UPDATE, INSERT, DELETE 주의점, NVL(MAX)로 최대 넘버링 주기, ?에 따른 pstmt의 갯수.... (3) | 2025.06.20 |
| CREATE with 제약조건 (2) | 2025.06.20 |
| JOIN (0) | 2025.06.20 |
| GROUP BY (0) | 2025.06.19 |