IT/DB

MSSQL 이미 존재하는 행이 있을때 데이터 삽입 금지

하루콩콩 2024. 5. 17. 08:51
반응형

예를들어 SELECT한 결과값을 그대로 특정 테이블에 INSERT 해야한다고 가정해보자.

 

INSERT INFO test_tb1(

col1,col2,col3

)

SELECT col1,col2,col3

FROM test_tb2

WHERE row_id = {#row_id}

 

 

기존에 test_tb1에 특정한 row_id를 PK로 가지는 행이 존재하는 경우에 EXISTS조건으로 중복되는 행은 제외할 수가 있다.

 

INSERT INFO test_tb1(

col1,col2,col3

)

SELECT col1,col2,col3

FROM test_tb2

WHERE row_id = {#row_id}

AND NOT EXISTS(

 SELECT 1

FROM test_tb1 t1

WHERE t1.row_id = t2.row_id

)

 

test_tb1 테이블과 test_tb2 테이블에 같은 row_id가 있을시에 INSERT는 실행되지 않으므로, 중복삽입을 방지 할 수 있다.

반응형