상세 컨텐츠

본문 제목

Oracle - 테이블 전체 컬럼 이름UPDATE

IT/DBMS

by TMI1 2025. 7. 11. 09:33

본문

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;
-- 커밋완료

 

'IT > DBMS' 카테고리의 다른 글

Oracle -PLSQL 실습1  (2) 2025.07.11
Oracle -DELETE, VIEW 생성  (3) 2025.07.11
Oracle - UPDATE 실습2  (0) 2025.07.10
Oracle - UPDATE 실습1  (0) 2025.07.10
Oracle - DEFAULT 표현식 실습  (1) 2025.07.09

관련글 더보기

댓글 영역