1️⃣ START TRANSACTION
Oracle:
Oracle에서는 명시적으로START TRANSACTION
명령어를 사용하지 않습니다.
대신, SQL 문을 실행하면 자동으로 트랜잭션이 시작됩니다.
즉,INSERT
,UPDATE
,DELETE
같은 DML 문이 실행되면 트랜잭션이 시작됩니다.다른 DB (MySQL):
MySQL에서는 명시적으로 트랜잭션을 시작하기 위해START TRANSACTION
을 사용해야 합니다.START TRANSACTION; INSERT INTO table_name VALUES (...); COMMIT;
🧐 주요 차이점
Oracle은 트랜잭션을 자동으로 시작하며, 별도의 명령어가 필요 없다는 점에서 MySQL, PostgreSQL 등과 다릅니다.
2️⃣ COMMIT
Oracle:
Oracle에서는COMMIT
명령어를 사용하여 현재 트랜잭션의 변경 사항을 영구적으로 저장합니다.INSERT INTO table_name VALUES (...); COMMIT;
다른 DB:
대부분의 RDBMS에서COMMIT
의 기능은 동일합니다.
🧐 주요 차이점
Oracle은 DDL 명령어 (CREATE
, DROP
, ALTER
)를 실행할 때 자동으로 COMMIT이 발생합니다.
반면, MySQL에서는 이 동작이 기본적으로 비활성화되어 있거나 트랜잭션 처리 방식에 따라 다릅니다.
3️⃣ ROLLBACK
Oracle:
ROLLBACK
명령어는 트랜잭션 내에서 실행된 모든 작업을 취소합니다.
예를 들어:INSERT INTO table_name VALUES (...); ROLLBACK;
이 경우, 해당 트랜잭션의 변경 사항은 무효화됩니다.
다른 DB:
MySQL, PostgreSQL 등에서도ROLLBACK
의 동작은 동일합니다.
🧐 주요 차이점
Oracle에서는 특정 시점으로 복구하기 위해 SAVEPOINT를 사용할 수 있습니다.
MySQL이나 PostgreSQL에서도 가능하지만, Oracle의 SAVEPOINT는 더 세부적인 트랜잭션 관리가 가능합니다.
4️⃣ SAVEPOINT
Oracle:
SAVEPOINT
를 사용하면 트랜잭션의 특정 지점을 설정할 수 있습니다.
이후,ROLLBACK TO SAVEPOINT
를 사용하여 해당 지점까지 복구할 수 있습니다.SAVEPOINT sp1; INSERT INTO table_name VALUES (...); ROLLBACK TO sp1;
다른 DB:
MySQL, PostgreSQL에서도SAVEPOINT
를 사용할 수 있지만 Oracle만큼 일반적으로 사용되지는 않습니다.
🧐 주요 차이점
Oracle은 SAVEPOINT를 자주 활용하여 복잡한 트랜잭션을 관리할 수 있으며, 높은 데이터 일관성을 보장합니다.
💡 주요 차이점 요약
기능 | Oracle | MySQL/PostgreSQL |
---|---|---|
트랜잭션 시작 | 자동 시작 (DML 실행 시) | START TRANSACTION 명령어 필요 |
COMMIT | DDL 실행 시 자동으로 COMMIT 발생 | 기본적으로 DDL에 대해 자동 COMMIT 발생 안 함 |
ROLLBACK | 동일 (트랜잭션 취소) | 동일 |
SAVEPOINT | 지원 (ROLLBACK TO SAVEPOINT 가능) | 동일하지만 Oracle에서 더 많이 활용됨 |
🔧 실전 예제 (Oracle)
-- 트랜잭션 시작 (DML 문 실행 시 자동 시작)
INSERT INTO employees (id, name) VALUES (101, 'John');
-- SAVEPOINT 설정
SAVEPOINT before_bonus;
-- 또 다른 작업
UPDATE employees SET salary = salary + 1000 WHERE id = 101;
-- 특정 시점으로 롤백
ROLLBACK TO before_bonus;
-- 최종적으로 변경 사항 저장
COMMIT;
응원 메시지 😊
트랜잭션은 데이터의 일관성을 유지하는 데 정말 중요한 요소예요. 처음에는 다소 복잡하게 느껴질 수 있지만, 천천히 연습하다 보면 쉽게 익숙해질 수 있답니다! 💪
'데이터베이스 > ORACLE' 카테고리의 다른 글
Oracle 자동 증가 컬럼: 시퀀스와 트리거로 구현하기 AUTO_INCREMENT (0) | 2024.12.20 |
---|---|
오라클 데이터 타입 총정리: 초보자를 위한 쉬운 가이드 (0) | 2024.12.20 |
SQL 초보자를 위한 WHERE CASE WHEN 사용법: Oracle vs 다른 DB (1) | 2024.12.20 |
Oracle PRIMARY KEY, FOREIGN KEY, DEFAULT 완벽 가이드 🌟 (0) | 2024.12.20 |
Oracle SQL 집계 함수 완벽 가이드: COUNT부터 LISTAGG까지! (0) | 2024.12.20 |