오라클[sql] merge / commit / rollback
▶ DML
-- INSERT UPDATE DELETE / SELECT
▶ DDL
-- CREATE ALTER DROP / TRUNCATE / RENAME
▶ CREATE AS SELECT
▶ INSERT INTO SELECT
▶ INSERT ALL
▶ MERGE : INSERT + UPDATE 합친 기능
-- 기존테이블에 자료 존재하면 UPDATE (자동)
-- 없는 데이터는 INSERT 진행
MERGE INTO 테이블명
USING 복사할데이터를 담은 테이블명 ( 복사할것이 없으면 daul)
ON -- 조인조건
WHEN MATCHED THEN
UPDATE SET
WHEN NOT MATCHED THEN
INSERT ()
VALUES ();
▶ COMMIT / ROLLBACK
-- INSERT / UPDATE / DELETE 데이터를 바꾸는 작업 > 트랜젝션(TRANSACTION)
-- 모든 작업을 정상적으로 처리하겠다 라고 확정짓는 명령어
-- 트랜젝션의 처리과정을 모두 저장하여 반영해라
-- commit을 했다 > 하나의 트랜젝션 과정을 종료했다.
-- 이전 데이터를 update를 했다 > 모든 사용자가 변경된 데이터를 볼 수 있다.
▶ ROLLBACK
-- 변경사항을 취소하고 트랜젝션이라는 작업의 과정을 종료
-- 트랜젝션으로 인한 하나의 묶음처리(저장)을 하기 이전상태로 되돌리기
-- INSERT / UPDATE / DELETE 을 모두 취소
-- 이전 COMMIT 한 상태까지 복구
▶ INSERT > DELETE > INSERT > COMMIT(1) > UPDATE > DELETE > INSERT > COMMIT(2)
(1) : INSERT DELETE INSERT 한 작업으로 1차 저장
(2) : UPDATE DELETE INSERT 한 작업으로 2차 저장
▶ INSERT > DELETE > INSERT > COMMIT(1)
> UPDATE > DELETE > "ROLLBACK" > INSERT > COMMIT(2)
-- ROLLBACK : ROLLBACK부터 이전 COMMIT 지점까지 작업을 모두 취소
-- UPDATE DELETE 작업을 모두 취소하고 COMMIT(1) 지점에서부터 시작