SELECT USER
FROM DUAL;
--==>> SCOTT
SELECT *
FROM TBL_SAWON;
-- TBL_SAWON 테이블 백업(→ 데이터복사 2025-07-11 09:05:10);
CREATE TABLE TBL_SAWONBACKUP
AS
SELECT *
FROM TBL_SAWON;
-- Table TBL_SAWONBACKUP이(가) 생성되었습니다.
--> TBL_SAWON 테이블의 데이터들만 백업을 수행
-- 즉, 다른 이름의 테이블 형태로 저장해둔 상황
-- 확인
SELECT *
FROM TBL_SAWONBACKUP;
SELECT *
FROM TBL_SAWON;
--○ 상황발생
UPDATE TBL_SAWON
SET SANAME = '똘똘이';
COMMIT;
-- 모두 똘똘이가 된 상황
SELECT *
FROM TBL_SAWON;
/*
1013 똘똘이 8502071234557 1999-10-10 2000
1001 똘똘이 0004183234567 2025-07-02 100
1002 똘똘이 0406274234567 2017-11-05 2000
1003 똘똘이 9904171234567 2011-01-03 3000
1004 똘똘이 8512161234567 1998-08-16 2000
1005 똘똘이 9302022234567 2018-07-10 7700
1006 똘똘이 7506171234567 1997-03-10 4000
1007 똘똘이 9704252234567 2007-12-10 2000
1008 똘똘이 7905082234567 1998-08-16 2000
1009 똘똘이 7012181234567 1990-10-10 3000
1010 똘똘이 7502201234567 1998-08-16 1000
1011 똘똘이 7005132234567 1998-08-16 1000
1012 똘똘이 0502204234567 2015-08-14 1000
*/
ROLLBACK;
ROLLBACK;
ROLLBACK;
-- 위와 같이 UPDATE 처리 이후에 함께 COMMIT 을 수행하였기 때문에
-- ROLLBACK 은 불가능한 상황이다.
-- 하지만, TBL_SAWONBACKUP 테이블에 데이터를 백업해 두었다.
-- SANAME 컬럼의 내용만 추출하여 '똘똘이' 대신 넣어줄 수 있다는 것이다.
UPDATE TBL_SAWON
SET SANAME = '김주형';
WHERE SANO = 1001;
UPDATE TBL_SAWON
SET SANAME = '이유빈';
WHERE SANO = 1002;
UPDATE TBL_SAWON
SET SANAME = '유한';
WHERE SANO = 1003;
COMMIT;
UPDATE TBL_SAWON
SET SANAME=(SELECT SANAME
FROM TBL_SAWONBACKUP
WHERE SANO=TBL_SAWON.SANO
);
SELECT *
FROM TBL_SAWON;
-- 원상복구
/*
1013 김훈 8502071234557 1999-10-10 2000
1001 김주형 0004183234567 2025-07-02 100
1002 이유빈 0406274234567 2017-11-05 2000
1003 유한 9904171234567 2011-01-03 3000
1004 이상이 8512161234567 1998-08-16 2000
1005 아이유 9302022234567 2018-07-10 7700
1006 이이경 7506171234567 1997-03-10 4000
1007 미노이 9704252234567 2007-12-10 2000
1008 선우선 7905082234567 1998-08-16 2000
1009 선동열 7012181234567 1990-10-10 3000
1010 남희석 7502201234567 1998-08-16 1000
1011 선우용녀 7005132234567 1998-08-16 1000
1012 남궁선 0502204234567 2015-08-14 1000
*/
COMMIT;
-- 커밋완료
댓글 영역