[ 트랜젝션이란? ]
COMMIT
ROLLBACK
SAVEPOINT 세이브포인트명
ROLLBACK TO 세이브포인트명
CREATE TABLE USER_TBL(
USERNO NUMBER UNIQUE
, ID VARCHAR2(20) PRIMARY KEY
, PASSWORD CHAR(20) NOT NULL
);
INSERT
INTO USER_TBL
(
USERNO, ID, PASSWORD
)
VALUES
(
1, 'test1', 'pass1'
);
INSERT
INTO USER_TBL
(
USERNO, ID, PASSWORD
)
VALUES
(
2, 'test2', 'pass2'
);
INSERT
INTO USER_TBL
(
USERNO, ID, PASSWORD
)
VALUES
(
3, 'test3', 'pass3'
);
SELECT * FROM USER_TBL;
ROLLBACK; --> 삽입한 3개의 행이 전부 삭제됨(트랜잭션 단위 되돌리기)
COMMIT; --> 삽입한 3개의 행을 저장 (트랜잭션 단위 저장)
INSERT
INTO USER_TBL
(
USERNO, ID, PASSWORD
)
VALUES
(
4, 'test4', 'pass4'
);
SAVEPOINT SP1; --> 저장 시점 지정
INSERT
INTO USER_TBL
(
USERNO, ID, PASSWORD
)
VALUES
(
5, 'test5', 'pass5'
);
ROLLBACK TO SP1; --> 세이브 포인터를 실행했던 시점으로 되돌림