Data Base/Linux

240103 Oracle DB Liunx_데이터 이관 작업 순서(연습)

잇꼬 2024. 1. 4. 09:42
728x90
반응형
SMALL

※ 연습용 순서


#1) 기존 테이블 삭제

DROP TABLE test PURGE;



#2) 테이블 생성 

CREATE TABLE test (
    id    NUMBER,
    name  VARCHAR(10),
    sal   NUMBER
);



#3) INSERT문 실행 및 저장

INSERT INTO test(id, name, sal) VALUES (1, 'a', 1000);
INSERT INTO test(id, name, sal) VALUES (2, 'b', 100);
INSERT INTO test(id, name, sal) VALUES (3, 'a', 2000);
COMMIT;

 

#4) data table 생성
SQL> @$ORACLE_HOME/rdbms/admin/utlexpt1


#5) exceptions 지우기

TRUNCATE TABLE EXCEPTIONS;


#6-1) data 확인

SELECT * FROM hr.test;


#6-2) 제약조건 확인

SELECT * FROM user_constraints WHERE table_name = 'TEST';


#7) 제약 조건 추가

- 오류발생

ALTER TABLE test ENABLE CONSTRAINT test_id_pk EXCEPTIONS INTO exceptions;


#8) 중복되는 data 확인

SELECT rowid, t.*
FROM test t
WHERE ROWID IN ( SELECT row_id FROM exceptions );


#9) 중복된 data 변경 후 commit

UPDATE test
SET id = 6
WHERE rowid = 'AAAVpSAAEAAAAJNAAC';

COMMIT;


#10) data 확인

SELECT * FROM hr.test;


#11) 기존 data 지우기

TRUNCATE TABLE EXCEPTIONS;


#12) 제약조건 생성

- 오류발생하지 않음.

ALTER TABLE test ENABLE CONSTRAINT test_id_pk EXCEPTIONS INTO exceptions;


#13) data 확인

SELECT * FROM hr.test;


#14) 변경된 제약조건 확인

SELECT * FROM user_constraints WHERE table_name = 'TEST';

 

728x90
반응형
LIST