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;