기존에 있던 화면을 리뉴얼 해야 돼서 테이블을 그대로 복사할 일이 생겼다.
데이터는 새로 넣을거지만 테스트를 위해 일부만 가져오면 돼서 테이블과 데이터 복사하는 방법을 찾아 봤다.
1. 테이블과 데이터 복사하기
CREATE TABLE 새로만들테이블명 AS
SELECT * FROM 복사할테이블명 [WHERE 절]
2. 테이블 구조만 복사하기
CREATE TABLE 새로만들테이블명 AS
SELECT * FROM 복사할테이블명 WHERE 1=2 [where절에 '참'이 아닌 조건을 넣어줌]
3. 구조가 동일한 테이블은 생성되어 있고 데이터만 복사
INSERT INTO 복사할테이블명 SELECT * FROM 테이블명 [WHERE 절]
4. 구조가 다른 테이블은 생성되어 있고 데이터만 복사
INSERT INTO 복사할테이블명 (COLUMN1, COLUMN2, COLUMN3)
SELECT COLUMN1, COLUMN2, COLUMN3 FROM 테이블명
[] 대괄호 안의 내용은 필수가 아니라서 안 넣어도 된다.
테이블 복사는 NOT NULL 조건만 복사가 되고 PK, INDEX, Comment 같은 건 복사가 안되므로 따로 지정해 줘야 한다.
1번을 이용해서 테이블을 만들면서 필요한 데이터만 넣으려고 했더니
복사할테이블은 조인이 안 먹혀서 테이블을 따로 만들고 데이터를 넣었다.
3번을 이용하여 데이터를 넣었고, 이너조인을 사용하여 원하는 데이터만 복사 할 수 있었다.
마지막 Toad 사용하시는 분들은 테이블 복사 아래 따라해 보시길.
5. Toad 사용자만 가능
Schema Browser 클릭 > Table 조회 > Script
Script에 있는 내용 복사하여 복사할테이블명만 만들어서 새로 만들어주면 된다.
5번은 제일 귀찮았던 Comment 입력까지 한 번에 다 돼서 좋았다.
[Oracle] 여러 Row 값을 ,(콤마)로 나열하기 (0) | 2022.09.19 |
---|---|
[Oracle] NVL과 NVL2 차이점 NULL 처리 방법 (0) | 2022.09.14 |
[Oracle] UNION, UNION ALL 차이점 (0) | 2022.08.29 |
[Oracle] "ORA-01839 지정된 월에 대한 날짜가 부적합합니다." 에러 해결 방법 (0) | 2022.08.26 |
[Oracle] 그리드에서 바로 수정 할 수 있는 방법 ROWID (0) | 2022.08.24 |