[Oracle] 오라클 상관서브쿼리를 사용한 UPDATE 처리하기개발/Oracle2022. 7. 20. 20:04
Table of Contents
반응형
회사에 입사하고난 뒤, DELETE 또는 UPDATE를 할 때 먼저 반드시 해당 테이블을 백업해두고,
그 다음에 DELETE 또는 UPDATE 해야 안전하다.
예시) 상관서브쿼리를 이용하여 테이블 백업 뒤, UPDATE하는 과정
create table tbl_employees_backup
as
select *
from employees;
-- Table TBL_EMPLOYEES_BACKUP이(가) 생성되었습니다.
EMPLOYEES 테이블을 복사한 테이블 TBL_EMPLOYEES_BACKUP 테이블 생성
select *
from tbl_employees_backup;
update employees set first_name = '순신', last_name = '이';
-- 107개 행 이(가) 업데이트되었습니다.
commit;
-- 커밋 완료.
실수로 EMPLOYEES 테이블 업데이트를 잘못하였는데, 커밋을 하였다. ROLLBACK도 안되는 상황.
update employees E set E.first_name = ( select first_name
from tbl_employees_backup
where employee_id = E.employee_id )
, E.last_name = ( select last_name
from tbl_employees_backup
where employee_id = E.employee_id );
-- 107개 행 이(가) 업데이트되었습니다.
백업해둔 테이블에서 다시 서브쿼리로 업데이트
select *
from employees;
commit;
-- 커밋 완료.
원본 테이블을 조회 한뒤에 복구가 제대로 되었는지 확인 후에, 제대로 되었다면 COMMIT을 한다.
- 백업 후에, 업데이트 하였는데 실수 없이 제대로 하였다면 백업해둔 테이블을 삭제하면 된다.
- UPDATE나 DELETE를 실수로 한 뒤에 COMMIT까지 해버린다면 롤백할 수 없기 때문에, 반드시 백업테이블을 생성한 뒤에 작업을 해주는 습관을 들이는 것이 좋겠다.
반응형
'개발 > Oracle' 카테고리의 다른 글
[Oracle] 오라클 Join 과제하기 (0) | 2022.07.20 |
---|---|
[Oracle] 오라클 Join(조인) (0) | 2022.07.20 |
[Oracle] 오라클 서브쿼리(Sub Query) (0) | 2022.07.20 |
[Oracle] 오라클 그룹 함수(집계 함수) (0) | 2022.07.20 |
[Oracle] 오라클 View(뷰) (0) | 2022.07.19 |
@Hyuniverse :: 개발스토리
개발을 하며 만났던 문제들과 해결 과정, 공부한 내용 등을 기록합니다.
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!