私は、主キーと自動インクリメントされた名前の列IDを持つテーブルテストを持っています。レコードがない場合にのみ、新しいレコードを挿入します。たとえば、
入力はid = 30122および名前= 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')
しかし、私は単一のクエリを使用したいですか?
誰かがその可能性を伝えることができますか?
私はそれがなぜ2つのクエリを使用して、単一のクエリを使用して行うことができる場合、私は、DB 2 times.Soをヒットする必要があり、その後2 quriesを使用する場合は@AaronBertrand私のバックエンドはjava.Soを使用して開発された
—
SpringLearner
Javaは、ストアドプロシージャ、またはデータベースへのヒットを1つだけ必要とする2つのステートメントを含む単一のバッチをサポートしていませんか?
—
アーロンバートランド
@AaronBertrandは、SQL Server 2008以降でこれをどのように処理するかの例を与えることができますか?
—
eaglei22
@ eaglei22以下のvijaypの回答の2番目の例を使用します。
—
アーロンバートランド
MERGE
SQL Server 2019であっても、どのバージョンでも選択しません。その背景については、こちらをご覧ください。
But I wanted to use single query?
どうして?