insert관련 질문 드립니다. 0 6 932

by 불멸의용병 [Oracle 기초] join insert select [2018.03.02 15:47:46]


안녕하세요.

저는 공장자동화 유지보수 업무를 담당하고 있습니다.

프로그램 수정 중 문의 사항이 있어서 질문드립니다.

테이블 구조가 동일한 두개의 테이블 A.Table , B.Table 가 있습니다.

A.Table 테이블에서 조회를 하여 B.Table 테이블에 입력을 하는 로직인데요

기본적으로 (id=a : A.Table에서 임의 조회 조건)

insert into B.Table select * from A.Table where id=a;

로 알고 있는데요

제가 문의드리는 사항은 B.Table에 입력 할때

id=b로 입력을 하기 위한 방법을 알고 싶습니다.

나름 생각한 쿼리는

insert into B.Table (select * from A.Table where id=a) where id=b;

였는데 역시나 안되는 군요;;;;

아무쪼록 많은 지도 부탁 드립니다.

미리 답변에 대한 감사의 말씀 올립니다.

by 우리집아찌 [2018.03.02 16:02:26]

insert into B.Table select * from A.Table where id=b;


by 불멸의용병 [2018.03.02 16:10:23]

빠른답변 감사합니다.

근데 올려 주신 답변은 A.Table의 모든 내용을 B.Table에 id를 b로 저장하는 거 아닌가요?

올려주신 답변을 테스트 해보고 싶으나 A.Table에 data가 2000 row가 넘어서

혹시나 해서 테스트 해보가가 겁나네요 (id가 pk라 안될걸 같긴 하지만요)

우선 id 컬럼은 PK이구요 A.Table에서 id로 한개의 row를 조회 하여 그조회한 결과를

B.Table에 다른 id로 바꿔서 저장하려고 합니다.

제 설명이 미흡하여 오해가 있으셨다면 죄송합니다.


by 마농 [2018.03.02 16:15:03]

우선 Select 부분만 실행해서 결과 확인하시고
주석 풀고 Insert 실행하세요.
 

-- INSERT INTO b.Table
SELECT 'b' id
     , c1, c2, c3, ...
  FROM a.Table
 WHERE id = 'a'
;

 


by 불멸의용병 [2018.03.02 16:21:33]

답변 감사합니다.

역사나 저의 설명이 부족했군요.

테이블들의 컬럼이 100여개가 되어서

게으른 마음에 쉽게 해볼방법이 없나 생각했는데

역시 방법이 없었나 봅니다.

다시한번 감사 드립니다


by playlyun [2018.03.02 16:23:53]

id가 a인 테이블데이터를 조회해서 b로 저장하는 내용이 맞는데 ...


by 우리집아찌 [2018.03.02 16:24:49]

SQL문 작성이 힘드시면 USER_TAB_COLUMNS 이용하시면 편합니다.

 

SELECT ',' || COLUMN_NAME 
  FROM USER_TAB_COLUMNS  
 WHERE TABLE_NAME = 'EMP'

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입