본문 바로가기
SQL/Oracle

오라클 SELECT 후 INSERT 하는 방법 정리

by wakestand 2020. 6. 2.
반응형

오라클에서 SELECT INSERT를 수행하는 방법은

동일한 테이블, 컬럼일 경우

혹은 테이블과 컬럼이 다를 경우

두 가지의 경우가 있는데

 

먼저 테이블이나 컬럼이 같을 경우에는

INSERT INTO 테이블명

SELECT 컬럼명

FROM 테이블명

 

이런 식으로 사용한다

여기서 테이블명 뒤에 컬럼을

지정해주지 않을 경우에는

INSERT 하려는 테이블의

모든 컬럼을 작성해주어야 한다

 

특정 컬럼에만 INSERT 하려면

INSERT INTO 테이블명(컬럼명)

SELECT 컬럼명

FROM 테이블명

과 같이 컬럼을 지정해줘야 한다

 

여기서 테이블과 컬럼이 다를 경우에는

스크린샷 위의 방법처럼 맞추기 힘들기 때문에

아래 방법으로 진행하게 된다

 

다음으로는 SELECT INSERT 시

시퀀스(Sequence)를 섞는 경우인데

 

시퀀스 대신

MAX+1을 사용하는 경우도 있지만

시퀀스가 훨씬 편하고 나아서

시퀀스를 쓰는게 낫다

 

시퀀스 개념은 아래 글을 참조해주면 되고

 

오라클 시퀀스 생성부터 사용법까지

오라클에서 시퀀스는 자동으로 값을 증가시켜 줄 때 사용하는데 예를 들어보자면 웹사이트에서 게시물을 작성할 시 게시물 번호가 자동으로 올라가는 것이 보일텐데 이게 바로 시퀀스를 사용��

wakestand.tistory.com

테스트로 간단히 확인해보려면

아래 내용을 복사한 뒤 실행해주면

1에서 9999까지 올라가는 시퀀스가 생성된다

 

CREATE SEQUENCE SEQ
INCREMENT BY 1
START WITH 1
MINVALUE 0 
MAXVALUE 9999 
NOCYCLE
NOCACHE

 

시퀀스를 생성한 다음

시퀀스명.NEXTVAL을 사용하면

사용할 때마다 값이

INCREMENT BY의 값에 따라 올라가게 되는데

위 예제로는 1씩 자동증가 된다는 말이다

 

INSERT INTO 테이블

SELECT 시퀀스명.NEXTVAL, 컬럼

FROM 테이블

을 사용해주면

 

SELECT 후 INSERT되는 값들이

시퀀스의 값을 가지고 삽입된다는 얘기다

반응형

댓글