기본 키와 자동 증가 및 이름이있는 열 id가있는 테이블 테스트가 있습니다. 레코드가없는 경우에만 annd 인 경우 새 레코드를 삽입하고 싶습니다.
입력은 id = 30122이고 name = john
ID가 30122 인 레코드가 있으면 이름 열을 john으로 업데이트하고 레코드가없는 경우 새 레코드를 삽입합니다.
나는 2 개의 쿼리를 사용하여 할 수있다
select * from test where id=30122
레코드가 있으면 사용할 수 있습니다. update test set name='john' where id=3012
또는 기록이 없으면 사용할 수 있습니다.
insert into test(name) values('john')
그러나 단일 쿼리를 사용하고 싶습니까?
누군가 가능하다면 말할 수 있습니까?
@AaronBertrand 내 백엔드는 java를 사용하여 개발되었으므로 2 개의 쿼리를 사용하면 DB를 두 번 두 드려야합니다. 따라서 단일 쿼리를 사용하여 수행 할 수있는 경우 2 개의 쿼리를 사용해야하는 이유
—
SpringLearner
Java는 저장 프로 시저 또는 데이터베이스에 하나의 히트 만 요구하는 두 개의 명령문이있는 단일 배치를 지원하지 않습니까?
—
Aaron Bertrand
@AaronBertrand SQL Server 2008 이상에서 어떻게 처리하는지 예를 들어 줄 수 있습니까?
—
eaglei22
@ eaglei22 아래 vijayp의 답변에서 두 번째 예를 사용합니다.
—
Aaron Bertrand
MERGE
SQL Server 2019조차도 어떤 버전에서도 선택하지 않을 것 입니다. 여기에 대한 배경 지식이 있습니다 .
But I wanted to use single query?
왜?