두 테이블을 비교하여 있으면 update 없으면 insert 시키는 방법 0 5 3,212

by 맛동산 [2018.07.02 15:53:45]


a table                          

aaa 111
bbb 222
ccc 333
ddd 444

b table

aaa 111
bbb 222
ccc 9999
ddd 444
eee 555

 

a테이블과 b테이블을 비교하여 a 테이블에 ccc 333을 ccc 9999로 바꾸고

a테이블에 eee 555를 추가 하고 싶습니다. 어떻게 하면 좋을까요?? 조금만 도움 주시면 감사하겠습니다. 

by 우리집아찌 [2018.07.02 16:09:39]
/* 그냥 update , insert 하시면됩니다 
   두 테이블의 어떤 비교를 하시고 싶으신지 모르겠네요.
*/
--a테이블과 b테이블을 비교하여 a 테이블에 ccc 333을 ccc 9999로 바꾸고
UPDATE B SET
  COL2 = '9999'
 WHERE COL1 = 'ccc' ;

--a테이블에 eee 555를 추가 하고 싶습니다. 어떻게 하면 좋을까요?? 
INSERT INTO B ( COL1 , COL2 ) VALUES ( 'eee' , 555) ;

 


by 맛동산 [2018.07.02 16:18:46]

눈으로 비교하는거 말고 자동으로 두 테이블을 비교하는 쿼리 있을까요??


by 우리집아찌 [2018.07.02 16:23:09]

비교할수있는 규칙이 있어야합니다.

첫번쨰 컬럼이 ccc 이면  9999 이다 라는건 좀 곤란합니다.

merge into 이용하시면 양쪽테이블을 비교하는 규칙이 있어야지요


by 마농 [2018.07.02 16:18:05]
MERGE INTO a
USING b
ON (a.id = b.id)
WHEN MATCHED THEN
  UPDATE
     SET a.val  = b.val
   WHERE a.val != b.val
WHEN NOT MATCHED THEN
  INSERT VALUES(b.id, b.val)
;

 


by 맛동산 [2018.07.02 17:48:26]

정말 감사합니다~^^

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