ホームページ >よくある問題 >使用法にマージする

使用法にマージする

(*-*)浩
(*-*)浩オリジナル
2019-06-26 10:41:2116658ブラウズ

簡単に説明すると、on()の条件を満たすデータがテーブル内にあるかどうかを判定し、あればデータを更新し、なければデータを挿入します。

使用法にマージする

2 つのフィールド a と b を持つテーブル T があります。テーブル T に対して挿入/更新を実行したいとします。条件が満たされていれば、次に、T の b の値を更新します。それ以外の場合は、T にレコードを挿入します。 Microsoft の SQL 構文では、簡単な文で十分です。SQL Server の構文は次のとおりです: (推奨学習: MySQL ビデオ チュートリアル )

if exists(select 1 from T where T.a='1001' )
update T set T.b=2 Where T.a='1001'
else
insert into T(a,b) values('1001',2);

しかし、それは明白です。この構文は次のとおりです。変更できるのは SQL の 1 つのステートメントのみであり、Oracle はそれを使用できません。そのため、Merge into (Oracle 9i で導入された機能) 構文

merge into 目标表 a
 
using 源表 b
 
on(a.条件字段1=b.条件字段1 and a.条件字段2=b.条件字段2 ……)  
 
when matched then update set a.更新字段=b.字段
 
when  not matched then insert into a(字段1,字段2……)values(值1,值2……)

" があり、Insert 構文と Update 構文の両方を持つ Mergeこのステートメントでは、Insert/Update レコードの合計数は、Using ステートメントの「ソース テーブル」内のレコード数になります。

ソース テーブル b は、a とは異なるテーブル構造を持つテーブル、同じテーブル構造を持つ一時テーブル、または自分で組み立てたデータである可能性があります。

その他の MySQL 関連の技術記事については、MySQL データベース グラフィック チュートリアル 列にアクセスして学習してください。

以上が使用法にマージするの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。