doc-exports/docs/dws/dev/dws_06_0235.html
Lu, Huayi ef0ada5a59 DWS DEV 20240716 version
Reviewed-by: Pruthi, Vineet <vineet.pruthi@t-systems.com>
Co-authored-by: Lu, Huayi <luhuayi@huawei.com>
Co-committed-by: Lu, Huayi <luhuayi@huawei.com>
2024-11-02 09:07:47 +00:00

176 lines
31 KiB
HTML

<a name="EN-US_TOPIC_0000001460561516"></a><a name="EN-US_TOPIC_0000001460561516"></a>
<h1 class="topictitle1">MERGE INTO</h1>
<div id="body1530499427336"><div class="section" id="EN-US_TOPIC_0000001460561516__section11462163155618"><h4 class="sectiontitle">Function</h4><p id="EN-US_TOPIC_0000001460561516__p1593511493188">The <strong id="EN-US_TOPIC_0000001460561516__b1389264818112">MERGE INTO</strong> statement is used to conditionally match data in a target table with that in a source table. If data matches, <strong id="EN-US_TOPIC_0000001460561516__b1793412147552">UPDATE</strong> is executed on the target table; if data does not match, <strong id="EN-US_TOPIC_0000001460561516__b5919317105513">INSERT</strong> is executed. You can use this syntax to run <strong id="EN-US_TOPIC_0000001460561516__b2656143555610">UPDATE</strong> and <strong id="EN-US_TOPIC_0000001460561516__b1973573715615">INSERT</strong> at a time for convenience.</p>
</div>
<div class="section" id="EN-US_TOPIC_0000001460561516__section166351045574"><h4 class="sectiontitle">Precautions</h4><ul id="EN-US_TOPIC_0000001460561516__ul465523022711"><li id="EN-US_TOPIC_0000001460561516__li1265553012278">To run <strong id="EN-US_TOPIC_0000001460561516__b166651398294">MERGE INTO</strong>, you must have the UPDATE and INSERT permissions for the target table, as well as the SELECT permission for the source table.</li><li id="EN-US_TOPIC_0000001460561516__li157271332122719"><strong id="EN-US_TOPIC_0000001460561516__b135175965916">PREPARE</strong> is not supported.</li><li id="EN-US_TOPIC_0000001460561516__li47909342275"><strong id="EN-US_TOPIC_0000001460561516__b61741215593">MERGE INTO</strong> cannot be executed during redistribution.</li><li id="EN-US_TOPIC_0000001460561516__li183652301425"><strong id="EN-US_TOPIC_0000001460561516__b1844142122314">MERGE INTO</strong> cannot be executed for target tables that contain triggers.</li><li id="EN-US_TOPIC_0000001460561516__li132588205167">When executing <strong id="EN-US_TOPIC_0000001460561516__b1817215254336">MERGE INTO</strong> for the round-robin table, you are advised to disable the GUC parameter <strong id="EN-US_TOPIC_0000001460561516__b131794254334">allow_concurrent_tuple_update</strong>. Otherwise, some <strong id="EN-US_TOPIC_0000001460561516__b618052515331">MERGE INTO</strong> statements are not supported.</li></ul>
</div>
<div class="section" id="EN-US_TOPIC_0000001460561516__section10551749579"><h4 class="sectiontitle">Syntax</h4><div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001460561516__screen836344319819"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal"> 1</span>
<span class="normal"> 2</span>
<span class="normal"> 3</span>
<span class="normal"> 4</span>
<span class="normal"> 5</span>
<span class="normal"> 6</span>
<span class="normal"> 7</span>
<span class="normal"> 8</span>
<span class="normal"> 9</span>
<span class="normal">10</span>
<span class="normal">11</span>
<span class="normal">12</span>
<span class="normal">13</span>
<span class="normal">14</span>
<span class="normal">15</span>
<span class="normal">16</span>
<span class="normal">17</span></pre></div></td><td class="code"><div><pre><span></span><span class="n">MERGE</span><span class="w"> </span><span class="p">[</span><span class="cm">/*+ plan_hint */</span><span class="p">]</span><span class="w"> </span><span class="k">INTO</span><span class="w"> </span><span class="k">table_name</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="n">partition_clause</span><span class="w"> </span><span class="p">]</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="p">]</span><span class="w"> </span><span class="k">alias</span><span class="w"> </span><span class="p">]</span>
<span class="k">USING</span><span class="w"> </span><span class="err">{</span><span class="w"> </span><span class="err">{</span><span class="w"> </span><span class="k">table_name</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">view_name</span><span class="w"> </span><span class="err">}</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">subquery</span><span class="w"> </span><span class="err">}</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="n">partition_clause</span><span class="w"> </span><span class="p">]</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="p">]</span><span class="w"> </span><span class="k">alias</span><span class="w"> </span><span class="p">]</span>
<span class="k">ON</span><span class="w"> </span><span class="p">(</span><span class="w"> </span><span class="n">condition</span><span class="w"> </span><span class="p">)</span>
<span class="p">[</span>
<span class="w"> </span><span class="k">WHEN</span><span class="w"> </span><span class="n">MATCHED</span><span class="w"> </span><span class="k">THEN</span>
<span class="w"> </span><span class="k">UPDATE</span><span class="w"> </span><span class="k">SET</span><span class="w"> </span><span class="err">{</span><span class="w"> </span><span class="k">column_name</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="err">{</span><span class="w"> </span><span class="n">expression</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="k">DEFAULT</span><span class="w"> </span><span class="err">}</span><span class="w"> </span><span class="o">|</span>
<span class="w"> </span><span class="p">(</span><span class="w"> </span><span class="k">column_name</span><span class="w"> </span><span class="p">[,</span><span class="w"> </span><span class="p">...]</span><span class="w"> </span><span class="p">)</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">(</span><span class="w"> </span><span class="err">{</span><span class="w"> </span><span class="n">expression</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="k">DEFAULT</span><span class="w"> </span><span class="err">}</span><span class="w"> </span><span class="p">[,</span><span class="w"> </span><span class="p">...]</span><span class="w"> </span><span class="p">)</span><span class="w"> </span><span class="err">}</span><span class="w"> </span><span class="p">[,</span><span class="w"> </span><span class="p">...]</span>
<span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="k">WHERE</span><span class="w"> </span><span class="n">condition</span><span class="w"> </span><span class="p">]</span>
<span class="p">]</span>
<span class="p">[</span>
<span class="w"> </span><span class="k">WHEN</span><span class="w"> </span><span class="k">NOT</span><span class="w"> </span><span class="n">MATCHED</span><span class="w"> </span><span class="k">THEN</span>
<span class="w"> </span><span class="k">INSERT</span><span class="w"> </span><span class="err">{</span><span class="w"> </span><span class="k">DEFAULT</span><span class="w"> </span><span class="k">VALUES</span><span class="w"> </span><span class="o">|</span>
<span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="p">(</span><span class="w"> </span><span class="k">column_name</span><span class="w"> </span><span class="p">[,</span><span class="w"> </span><span class="p">...]</span><span class="w"> </span><span class="p">)</span><span class="w"> </span><span class="p">]</span><span class="w"> </span><span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="w"> </span><span class="err">{</span><span class="w"> </span><span class="n">expression</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="k">DEFAULT</span><span class="w"> </span><span class="err">}</span><span class="w"> </span><span class="p">[,</span><span class="w"> </span><span class="p">...]</span><span class="w"> </span><span class="p">)</span><span class="w"> </span><span class="p">[,</span><span class="w"> </span><span class="p">...]</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="k">WHERE</span><span class="w"> </span><span class="n">condition</span><span class="w"> </span><span class="p">]</span><span class="w"> </span><span class="err">}</span>
<span class="p">];</span>
<span class="k">where</span><span class="w"> </span><span class="n">partition_clause</span><span class="w"> </span><span class="n">can</span><span class="w"> </span><span class="n">be</span><span class="p">:</span>
<span class="n">PARTITION</span><span class="w"> </span><span class="p">(</span><span class="w"> </span><span class="n">partition_name</span><span class="w"> </span><span class="p">)</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">PARTITION</span><span class="w"> </span><span class="k">FOR</span><span class="w"> </span><span class="p">(</span><span class="w"> </span><span class="n">partition_key_value</span><span class="w"> </span><span class="p">[,</span><span class="w"> </span><span class="p">...]</span><span class="w"> </span><span class="p">)</span>
</pre></div></td></tr></table></div>
</div>
</div>
<div class="section" id="EN-US_TOPIC_0000001460561516__section1315653475"><h4 class="sectiontitle">Parameter Description</h4><ul id="EN-US_TOPIC_0000001460561516__ul1673210785815"><li id="EN-US_TOPIC_0000001460561516__li3827664622714"><strong id="EN-US_TOPIC_0000001460561516__b3514234195418">plan_hint</strong> clause<p id="EN-US_TOPIC_0000001460561516__p4005798022743">Following the keyword in the /*+ */ format, hints are used to optimize the plan generated by a specified statement block. For details, see "Hint-based Tuning" in the <em id="EN-US_TOPIC_0000001460561516__i51233448261">Data Warehouse Service (DWS) Developer Guide</em>.</p>
</li></ul>
<ul id="EN-US_TOPIC_0000001460561516__ul0131122414393"><li id="EN-US_TOPIC_0000001460561516__l2e7c51aac0a94a18bf457a6cb51fc92b"><strong id="EN-US_TOPIC_0000001460561516__b1790952718013">INTO</strong> clause<p id="EN-US_TOPIC_0000001460561516__afd87c3971a4d4428b1326a6b1633bd60">Specifies the target table that is being updated or has data being inserted.</p>
<ul id="EN-US_TOPIC_0000001460561516__ul1536131117155"><li id="EN-US_TOPIC_0000001460561516__li355611952012"><strong id="EN-US_TOPIC_0000001460561516__b457694211213">table_name</strong><p id="EN-US_TOPIC_0000001460561516__p139262952113">Specifies the name of the target table.</p>
</li><li id="EN-US_TOPIC_0000001460561516__li4112653105616"><strong id="EN-US_TOPIC_0000001460561516__b65304117314">partition_clause</strong><p id="EN-US_TOPIC_0000001460561516__p11121711814">Specifies a partition in the target table. This clause is supported by clusters of version 8.2.1.220 or later.</p>
<p id="EN-US_TOPIC_0000001460561516__p206132035717">Partitions can be specified only if the target table is a partitioned one.</p>
<p id="EN-US_TOPIC_0000001460561516__p567514255916">The specified partition name must already exist in the target table or the partition specified by the partition key already exists.</p>
</li><li id="EN-US_TOPIC_0000001460561516__l9d81378151c840608c7f91620059e663"><strong id="EN-US_TOPIC_0000001460561516__a870e440c9dbc4c2b8d332416c636b5b7">alias</strong><p id="EN-US_TOPIC_0000001460561516__a849db2fd073941289d905ecac08ab8ac">Specifies the alias of the target table.</p>
<p id="EN-US_TOPIC_0000001460561516__a4047bf2bb850400982359fec570c4f9b">Value range: a string. It must comply with the naming convention.</p>
</li></ul>
</li><li id="EN-US_TOPIC_0000001460561516__li639155673"><strong id="EN-US_TOPIC_0000001460561516__b5235181011212">USING</strong> clause<p id="EN-US_TOPIC_0000001460561516__p58570217715">Specifies the source table, which can be a table, view, or subquery.</p>
<ul id="EN-US_TOPIC_0000001460561516__ul1127061911582"><li id="EN-US_TOPIC_0000001460561516__li159601521389"><strong id="EN-US_TOPIC_0000001460561516__b3104471633">partition_clause</strong><p id="EN-US_TOPIC_0000001460561516__p169318414814">Specifies a partition in the source table. This clause is supported by clusters of version 8.2.1.220 or later.</p>
<p id="EN-US_TOPIC_0000001460561516__p10693141289">Partitions can be specified only if the source table is a partitioned one. Partitions cannot be specified for views or subqueries.</p>
<p id="EN-US_TOPIC_0000001460561516__p1969314411586">The specified partition name must already exist in the source table or the partition specified by the partition key already exists.</p>
</li></ul>
</li><li id="EN-US_TOPIC_0000001460561516__l849b5f8b1c044e69b209289558768817"><strong id="EN-US_TOPIC_0000001460561516__b14253733321">ON</strong> clause<p id="EN-US_TOPIC_0000001460561516__a20ef3ea8919b439aa87cd0dc7571a357">Specifies the condition used to match data between the source and target tables. Columns in the condition cannot be updated. The <strong id="EN-US_TOPIC_0000001460561516__b1033812248423">ON</strong> association condition can be <strong id="EN-US_TOPIC_0000001460561516__b18338152424217">ctid</strong>,<strong id="EN-US_TOPIC_0000001460561516__b193384243422"> xc_node_id</strong>, or <strong id="EN-US_TOPIC_0000001460561516__b7338112417425">tableoid</strong>.</p>
</li><li id="EN-US_TOPIC_0000001460561516__li2630142874718"><strong id="EN-US_TOPIC_0000001460561516__b31295321934">WHEN MATCHED</strong> clause<p id="EN-US_TOPIC_0000001460561516__p12887162312286">Performs the UPDATE operation if data in the source table matches that in the target table based on the condition.</p>
<p id="EN-US_TOPIC_0000001460561516__p79501031124716">Distribution keys cannot be updated. System catalogs and system columns cannot be updated.</p>
<p id="EN-US_TOPIC_0000001460561516__p193621930428">With a partition specified in the target table, if the UPDATE causes the partition keys to change:</p>
<ul id="EN-US_TOPIC_0000001460561516__ul177014175311"><li id="EN-US_TOPIC_0000001460561516__li05351215213">If the target table is a column-store table, the error message "The inserted partition key is not mapped to the specified 'partition_name' partition" is displayed.</li><li id="EN-US_TOPIC_0000001460561516__li7182378312">If the target table is a row-store table:<ul id="EN-US_TOPIC_0000001460561516__ul05791754531"><li id="EN-US_TOPIC_0000001460561516__li11117254234">If ENABLE ROW MOVEMENT is set for the target table, no error will be reported, the updated data will belong to the new partition.</li><li id="EN-US_TOPIC_0000001460561516__li338620471641">If Disable ROW MOVEMENT is set for the target table, the error message "fail to update partitioned table "table_name" will be displayed.</li></ul>
</li></ul>
</li><li id="EN-US_TOPIC_0000001460561516__li227205134712"><strong id="EN-US_TOPIC_0000001460561516__b1026311413613">WHEN NOT MATCHED</strong> clause<p id="EN-US_TOPIC_0000001460561516__p14681335172619">Specifies that the INSERT operation is performed if data in the source table does not match that in the target table based on the condition.</p>
<p id="EN-US_TOPIC_0000001460561516__p46549488473">The <strong id="EN-US_TOPIC_0000001460561516__b51819394716">INSERT</strong> clause is not allowed to contain multiple <strong id="EN-US_TOPIC_0000001460561516__b547010533716">VALUES</strong>.</p>
<p id="EN-US_TOPIC_0000001460561516__p20458113872611">The order of <strong id="EN-US_TOPIC_0000001460561516__b18862161183">WHEN MATCHED</strong> and <strong id="EN-US_TOPIC_0000001460561516__b7393992812">WHEN NOT MATCHED</strong> clauses can be reversed. One of them can be used by default, but they cannot be both used at one time. Two <strong id="EN-US_TOPIC_0000001460561516__b12704614391">WHEN MATCHED</strong> or <strong id="EN-US_TOPIC_0000001460561516__b10187617594">WHEN NOT MATCHED</strong> clauses cannot be specified at the same time.</p>
<p id="EN-US_TOPIC_0000001460561516__p13517113812518">If a partition in the target table is specified and more data beyond the scope of the partition is inserted, the error message "The inserted partition key is not mapped to the specified 'partition_name' partition" will be displayed.</p>
</li><li id="EN-US_TOPIC_0000001460561516__li11886163461611"><strong id="EN-US_TOPIC_0000001460561516__b38861734141614">DEFAULT</strong><p id="EN-US_TOPIC_0000001460561516__p988643414168">Specifies the default value of a column.</p>
<p id="EN-US_TOPIC_0000001460561516__p17886034161616">It will be <strong id="EN-US_TOPIC_0000001460561516__b4871682812018">NULL</strong> if no specific default value has been assigned to it.</p>
</li><li id="EN-US_TOPIC_0000001460561516__li688613441610"><strong id="EN-US_TOPIC_0000001460561516__b20886193481611">WHERE condition</strong><p id="EN-US_TOPIC_0000001460561516__p188603471617">Specifies the conditions for the <strong id="EN-US_TOPIC_0000001460561516__b8145171921312">UPDATE</strong> and <strong id="EN-US_TOPIC_0000001460561516__b1192192141311">INSERT</strong> clauses. The two clauses will be executed only when the conditions are met. The default value can be used. System columns cannot be referenced in <strong id="EN-US_TOPIC_0000001460561516__b972722814140">WHERE condition</strong>.</p>
</li></ul>
</div>
<div class="section" id="EN-US_TOPIC_0000001460561516__section3650125620712"><h4 class="sectiontitle">Examples</h4><p id="EN-US_TOPIC_0000001460561516__p783566195214">Create the target table <strong id="EN-US_TOPIC_0000001460561516__b4663919933456">products</strong> and source table <strong id="EN-US_TOPIC_0000001460561516__b70214602933456">newproducts</strong>, and insert data to them.</p>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001460561516__screen11674142205314"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal"> 1</span>
<span class="normal"> 2</span>
<span class="normal"> 3</span>
<span class="normal"> 4</span>
<span class="normal"> 5</span>
<span class="normal"> 6</span>
<span class="normal"> 7</span>
<span class="normal"> 8</span>
<span class="normal"> 9</span>
<span class="normal">10</span>
<span class="normal">11</span>
<span class="normal">12</span>
<span class="normal">13</span>
<span class="normal">14</span>
<span class="normal">15</span>
<span class="normal">16</span>
<span class="normal">17</span>
<span class="normal">18</span>
<span class="normal">19</span>
<span class="normal">20</span>
<span class="normal">21</span>
<span class="normal">22</span>
<span class="normal">23</span>
<span class="normal">24</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">CREATE</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">products</span>
<span class="p">(</span>
<span class="n">product_id</span><span class="w"> </span><span class="nb">INTEGER</span><span class="p">,</span>
<span class="n">product_name</span><span class="w"> </span><span class="n">VARCHAR2</span><span class="p">(</span><span class="mi">60</span><span class="p">),</span>
<span class="n">category</span><span class="w"> </span><span class="n">VARCHAR2</span><span class="p">(</span><span class="mi">60</span><span class="p">)</span>
<span class="p">);</span>
<span class="k">INSERT</span><span class="w"> </span><span class="k">INTO</span><span class="w"> </span><span class="n">products</span><span class="w"> </span><span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="mi">1501</span><span class="p">,</span><span class="w"> </span><span class="s1">'vivitar 35mm'</span><span class="p">,</span><span class="w"> </span><span class="s1">'electrncs'</span><span class="p">);</span>
<span class="k">INSERT</span><span class="w"> </span><span class="k">INTO</span><span class="w"> </span><span class="n">products</span><span class="w"> </span><span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="mi">1502</span><span class="p">,</span><span class="w"> </span><span class="s1">'olympus is50'</span><span class="p">,</span><span class="w"> </span><span class="s1">'electrncs'</span><span class="p">);</span>
<span class="k">INSERT</span><span class="w"> </span><span class="k">INTO</span><span class="w"> </span><span class="n">products</span><span class="w"> </span><span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="mi">1600</span><span class="p">,</span><span class="w"> </span><span class="s1">'play gym'</span><span class="p">,</span><span class="w"> </span><span class="s1">'toys'</span><span class="p">);</span>
<span class="k">INSERT</span><span class="w"> </span><span class="k">INTO</span><span class="w"> </span><span class="n">products</span><span class="w"> </span><span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="mi">1601</span><span class="p">,</span><span class="w"> </span><span class="s1">'lamaze'</span><span class="p">,</span><span class="w"> </span><span class="s1">'toys'</span><span class="p">);</span>
<span class="k">INSERT</span><span class="w"> </span><span class="k">INTO</span><span class="w"> </span><span class="n">products</span><span class="w"> </span><span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="mi">1666</span><span class="p">,</span><span class="w"> </span><span class="s1">'harry potter'</span><span class="p">,</span><span class="w"> </span><span class="s1">'dvd'</span><span class="p">);</span>
<span class="k">CREATE</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">newproducts</span>
<span class="p">(</span>
<span class="n">product_id</span><span class="w"> </span><span class="nb">INTEGER</span><span class="p">,</span>
<span class="n">product_name</span><span class="w"> </span><span class="n">VARCHAR2</span><span class="p">(</span><span class="mi">60</span><span class="p">),</span>
<span class="n">category</span><span class="w"> </span><span class="n">VARCHAR2</span><span class="p">(</span><span class="mi">60</span><span class="p">)</span>
<span class="p">);</span>
<span class="k">INSERT</span><span class="w"> </span><span class="k">INTO</span><span class="w"> </span><span class="n">newproducts</span><span class="w"> </span><span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="mi">1502</span><span class="p">,</span><span class="w"> </span><span class="s1">'olympus camera'</span><span class="p">,</span><span class="w"> </span><span class="s1">'electrncs'</span><span class="p">);</span>
<span class="k">INSERT</span><span class="w"> </span><span class="k">INTO</span><span class="w"> </span><span class="n">newproducts</span><span class="w"> </span><span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="mi">1601</span><span class="p">,</span><span class="w"> </span><span class="s1">'lamaze'</span><span class="p">,</span><span class="w"> </span><span class="s1">'toys'</span><span class="p">);</span>
<span class="k">INSERT</span><span class="w"> </span><span class="k">INTO</span><span class="w"> </span><span class="n">newproducts</span><span class="w"> </span><span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="mi">1666</span><span class="p">,</span><span class="w"> </span><span class="s1">'harry potter'</span><span class="p">,</span><span class="w"> </span><span class="s1">'toys'</span><span class="p">);</span>
<span class="k">INSERT</span><span class="w"> </span><span class="k">INTO</span><span class="w"> </span><span class="n">newproducts</span><span class="w"> </span><span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="mi">1700</span><span class="p">,</span><span class="w"> </span><span class="s1">'wait interface'</span><span class="p">,</span><span class="w"> </span><span class="s1">'books'</span><span class="p">);</span>
</pre></div></td></tr></table></div>
</div>
<p id="EN-US_TOPIC_0000001460561516__p1183514612526">Run <strong id="EN-US_TOPIC_0000001460561516__b29262119633456">MERGE INTO</strong>.</p>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001460561516__screen1428215165413"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
<span class="normal">2</span>
<span class="normal">3</span>
<span class="normal">4</span>
<span class="normal">5</span>
<span class="normal">6</span>
<span class="normal">7</span></pre></div></td><td class="code"><div><pre><span></span><span class="n">MERGE</span><span class="w"> </span><span class="k">INTO</span><span class="w"> </span><span class="n">products</span><span class="w"> </span><span class="n">p</span><span class="w"> </span>
<span class="k">USING</span><span class="w"> </span><span class="n">newproducts</span><span class="w"> </span><span class="n">np</span><span class="w"> </span>
<span class="k">ON</span><span class="w"> </span><span class="p">(</span><span class="n">p</span><span class="p">.</span><span class="n">product_id</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">np</span><span class="p">.</span><span class="n">product_id</span><span class="p">)</span><span class="w"> </span>
<span class="k">WHEN</span><span class="w"> </span><span class="n">MATCHED</span><span class="w"> </span><span class="k">THEN</span><span class="w"> </span>
<span class="w"> </span><span class="k">UPDATE</span><span class="w"> </span><span class="k">SET</span><span class="w"> </span><span class="n">p</span><span class="p">.</span><span class="n">product_name</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">np</span><span class="p">.</span><span class="n">product_name</span><span class="p">,</span><span class="w"> </span><span class="n">p</span><span class="p">.</span><span class="n">category</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">np</span><span class="p">.</span><span class="n">category</span><span class="w"> </span><span class="k">WHERE</span><span class="w"> </span><span class="n">p</span><span class="p">.</span><span class="n">product_name</span><span class="w"> </span><span class="o">!=</span><span class="w"> </span><span class="s1">'play gym'</span><span class="w"> </span>
<span class="k">WHEN</span><span class="w"> </span><span class="k">NOT</span><span class="w"> </span><span class="n">MATCHED</span><span class="w"> </span><span class="k">THEN</span><span class="w"> </span>
<span class="w"> </span><span class="k">INSERT</span><span class="w"> </span><span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="n">np</span><span class="p">.</span><span class="n">product_id</span><span class="p">,</span><span class="w"> </span><span class="n">np</span><span class="p">.</span><span class="n">product_name</span><span class="p">,</span><span class="w"> </span><span class="n">np</span><span class="p">.</span><span class="n">category</span><span class="p">)</span><span class="w"> </span><span class="k">WHERE</span><span class="w"> </span><span class="n">np</span><span class="p">.</span><span class="n">category</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s1">'books'</span><span class="p">;</span>
</pre></div></td></tr></table></div>
</div>
<p id="EN-US_TOPIC_0000001460561516__p18344618524">Query updates.</p>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001460561516__screen1288693114548"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal"> 1</span>
<span class="normal"> 2</span>
<span class="normal"> 3</span>
<span class="normal"> 4</span>
<span class="normal"> 5</span>
<span class="normal"> 6</span>
<span class="normal"> 7</span>
<span class="normal"> 8</span>
<span class="normal"> 9</span>
<span class="normal">10</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">products</span><span class="w"> </span><span class="k">ORDER</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="n">product_id</span><span class="p">;</span>
<span class="w"> </span><span class="n">product_id</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">product_name</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">category</span><span class="w"> </span>
<span class="c1">------------+----------------+-----------</span>
<span class="w"> </span><span class="mi">1501</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">vivitar</span><span class="w"> </span><span class="mi">35</span><span class="n">mm</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">electrncs</span>
<span class="w"> </span><span class="mi">1502</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">olympus</span><span class="w"> </span><span class="n">camera</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">electrncs</span>
<span class="w"> </span><span class="mi">1600</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">play</span><span class="w"> </span><span class="n">gym</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">toys</span>
<span class="w"> </span><span class="mi">1601</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">lamaze</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">toys</span>
<span class="w"> </span><span class="mi">1666</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">harry</span><span class="w"> </span><span class="n">potter</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">toys</span>
<span class="w"> </span><span class="mi">1700</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">wait</span><span class="w"> </span><span class="n">interface</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">books</span>
<span class="p">(</span><span class="mi">6</span><span class="w"> </span><span class="k">rows</span><span class="p">)</span>
</pre></div></td></tr></table></div>
</div>
<p id="EN-US_TOPIC_0000001460561516__p1383456195213">Delete a table.</p>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001460561516__screen10841945165415"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
<span class="normal">2</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">DROP</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">products</span><span class="p">;</span>
<span class="k">DROP</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">newproducts</span><span class="p">;</span>
</pre></div></td></tr></table></div>
</div>
</div>
</div>
<div>
<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong> <a href="dws_06_0227.html">DML Syntax</a></div>
</div>
</div>