簡単に説明すると、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 サイトの他の関連記事を参照してください。