by 이상미 [DB 기타] [2017.10.17 22:49:38]
예를 들면요...A테이블릃 select 해서 데이타가 없으면 B테이블에 insert 넣으려고 합니다..
with 문을 쓰려고 하는데요...어떻게 쿼리를 짜야 할지 모르겠습니다..
가르쳐 주시면 감사 하겠습니다. 디비는 postgresql 입니다
postgresql는 안써보긴했는데 MERGE 문이 있을겁니다. 이걸 이용하세요.
with 문을 어떤 용도로 쓰시게요?
insert into b values(acol, bcol) select * from ( select '넣을값1' acol, '넣을값2' bcol ) where not exists (select 1 from a where 검색조건)
그냥 이렇게 하시면 되지 않을까요?
에러나는 구문 아닌지요?
오라클에서는 from dual 만 붙여주면 오류가 안 나는데 postgresql에서는 테스트 안 해봤습니다.
a테이블에 있는 값을 b에 넣는 것인지
신규 데이터를 입력하는 것인지 자세히 적어주시지 않아
단순히 신규 데이터 입력이라 생각했는데.. 어떤 의미로 작성자님이 질문하신 건지 애매하네요.
테이블 스키마를 올려주세요
INSERT INTO b(pk1, pk2, c1, c2, ...) SELECT pk1, pk2, c1, c2, ... FROM a WHERE NOT EXISTS (SELECT 1 FROM b WHERE b.pk1 = a.pk1 AND b.pk2 = a.pk2 ) ;