Oracle DBA/SQL

080 데이터 삭제하기3 (DROP)

Nuez 2023. 7. 6. 15:17
반응형

데이터를 지우는 3가지 방법

  DML DDL
  DELETE  TRUNCATE  DROP
데이터 삭제 삭제 삭제
저장 공간 남김 삭제 삭제
저장 구조 남김 남김 삭제
취소 (롤백) 여부 가능 불가능 불가능
플래쉬백 여부 가능 불가능 가능

DDL :  롤백 불가 , 자동커밋

DML : 롤백 가능


ORACLE


문제 455. emp 테이블을 drop하시오.

DROP TABLE emp;

SELECT * FROM emp;


문제 456. 휴지통 속에 emp 테이블이 있는지 확인하시오.

SELECT * 
FROM USER_RECYCLEBIN
ORDER BY droptime DESC;

문제 457. 휴지통 속에 있는 emp테이블을 복구하시오.

FLASHBACK TABLE emp TO BEFORE DROP;

SELECT * FROM emp;


MySQL


문제 458. MySQL의 emp 테이블을 drop 하시오.

 

사전 작업 : 복구할 백업 테이블 생성

CREATE TABLE emp_backup2
AS
SELECT * FROM emp;

DROP

DROP TABLE emp;


DROP 잘 됐는지 확인

SELECT *
FROM emp;

emp 테이블이 존재하지 않는다는 오류 메세지 출력 : DROP 잘됨.


 

ROLLBACK으로 복구 시도

ROLLBACK;
SELECT *
FROM emp;


ROLLBACK이 성공했다는 메세지는 뜨지만, DROP은 취소 불가능.

플래쉬백으로 복구해야하지만, MySQL에는 해당기능이 없음.

 

백업해둔 테이블의 데이터를 바탕으로 새로운 테이블을 생성하는 방법으로 복구


문제 459. 백업해둔 emp_backup2으로 emp 테이블을 생성하시오.

CREATE table emp 
AS
SELECT *
FROM emp_backup2;
SELECT * FROM emp;