forked from docs/doc-exports
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>
66 lines
14 KiB
HTML
66 lines
14 KiB
HTML
<a name="EN-US_TOPIC_0000001856238629"></a><a name="EN-US_TOPIC_0000001856238629"></a>
|
|
|
|
<h1 class="topictitle1">UPDATE</h1>
|
|
<div id="body8662426"><div class="section" id="EN-US_TOPIC_0000001856238629__en-us_topic_0000001441998304_sc38eadebc8e74e1e8200bca116ca55ef"><h4 class="sectiontitle">Function</h4><p id="EN-US_TOPIC_0000001856238629__en-us_topic_0000001441998304_p1758418711202">Update specified data in an HStore table.</p>
|
|
</div>
|
|
<div class="section" id="EN-US_TOPIC_0000001856238629__en-us_topic_0000001441998304_s382c620cdede4a91ba5d429f091c14c9"><h4 class="sectiontitle">Precautions</h4><ul id="EN-US_TOPIC_0000001856238629__en-us_topic_0000001441998304_u83811bebe7004526bcd5b0d5cb5278d2"><li id="EN-US_TOPIC_0000001856238629__en-us_topic_0000001441998304_li95791719102217">Similar to column storage, the UPDATE operation on an HStore table in the current version involves DELETE and INSERT. You can configure a global GUC parameter to control the lightweight UPDATE of HStore. In the current version, the lightweight UPDATE is disabled by default.</li><li id="EN-US_TOPIC_0000001856238629__en-us_topic_0000001441998304_li1057803513228">In concurrent update scenarios, operations on the same CU will cause lock conflicts in traditional column-store tables and result in low performance. For HStore tables, the operations can be concurrently performed, and the update performance can be more than 100 times that of column-store tables.</li></ul>
|
|
</div>
|
|
<div class="section" id="EN-US_TOPIC_0000001856238629__en-us_topic_0000001441998304_s63e68d20fc8a4670b54b531fc5722bb9"><h4 class="sectiontitle">Syntax</h4><div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001856238629__en-us_topic_0000001441998304_s60d8dda324084db98740133562841b8c"><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></pre></div></td><td class="code"><div><pre><span></span><span class="k">UPDATE</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="p">[</span><span class="w"> </span><span class="k">ONLY</span><span class="w"> </span><span class="p">]</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="o">*</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">SET</span><span class="w"> </span><span class="err">{</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="w"> </span><span class="o">|</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="err">{</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="o">|</span><span class="n">sub_query</span><span class="w"> </span><span class="err">}}</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">FROM</span><span class="w"> </span><span class="n">from_list</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>
|
|
</pre></div></td></tr></table></div>
|
|
|
|
</div>
|
|
</div>
|
|
<div class="section" id="EN-US_TOPIC_0000001856238629__en-us_topic_0000001441998304_s0568dfe900e948eaa67d0a335c26701c"><h4 class="sectiontitle">Parameters</h4><ul id="EN-US_TOPIC_0000001856238629__en-us_topic_0000001441998304_ua3cdf4f3c73f4d4f9f931f40929ad83b"><li id="EN-US_TOPIC_0000001856238629__en-us_topic_0000001441998304_li3827664622714"><strong id="EN-US_TOPIC_0000001856238629__en-us_topic_0000001441998304_b11775101817307">plan_hint</strong> clause<p id="EN-US_TOPIC_0000001856238629__en-us_topic_0000001441998304_p4005798022743">Following the keyword in the /*+ */ format, hints are used to optimize the plan generated by a specified statement block. For details, see "Performance Tuning > Query Improvement > Hint-based Tuning" in <em id="EN-US_TOPIC_0000001856238629__en-us_topic_0000001441998304_i1852272413015">Data Warehouse Service (DWS) Developer Guide</em>.</p>
|
|
</li><li id="EN-US_TOPIC_0000001856238629__en-us_topic_0000001441998304_lcdad2d9b3f9a4d04a7ec90f15d6ba8f1"><strong id="EN-US_TOPIC_0000001856238629__en-us_topic_0000001441998304_afd3debcb3d2a4d80b4e37752462962f6">table_name</strong><p id="EN-US_TOPIC_0000001856238629__en-us_topic_0000001441998304_a5f22c01e47794479bef5b0eeddcf991d">Name (optionally schema-qualified) of the table to be updated.</p>
|
|
<p id="EN-US_TOPIC_0000001856238629__en-us_topic_0000001441998304_abc1f6bff7ca8467e8dd3bbb410fbc3b0">Value range: an existing table name</p>
|
|
</li><li id="EN-US_TOPIC_0000001856238629__en-us_topic_0000001441998304_l9d81378151c840608c7f91620059e663"><strong id="EN-US_TOPIC_0000001856238629__en-us_topic_0000001441998304_a870e440c9dbc4c2b8d332416c636b5b7">alias</strong><p id="EN-US_TOPIC_0000001856238629__en-us_topic_0000001441998304_a849db2fd073941289d905ecac08ab8ac">Specifies the alias for the target table.</p>
|
|
<p id="EN-US_TOPIC_0000001856238629__en-us_topic_0000001441998304_a4047bf2bb850400982359fec570c4f9b">Value range: a string. It must comply with the naming convention.</p>
|
|
</li><li id="EN-US_TOPIC_0000001856238629__en-us_topic_0000001441998304_l4db40ebeace24f2cb70e85120c655c52"><strong id="EN-US_TOPIC_0000001856238629__en-us_topic_0000001441998304_a2c53ba7740e64fd092bd40c847a98990">expression</strong><p id="EN-US_TOPIC_0000001856238629__en-us_topic_0000001441998304_ae5a2f1ff674f49d8b7580e7ee1ff402f">Specifies a value assigned to a column or an expression that assigns the value.</p>
|
|
</li><li id="EN-US_TOPIC_0000001856238629__en-us_topic_0000001441998304_l0f2f1af228be4dacbb8a025911ae07c0"><strong id="EN-US_TOPIC_0000001856238629__en-us_topic_0000001441998304_a4e6d59a99d144da7ad466add88928200">DEFAULT</strong><p id="EN-US_TOPIC_0000001856238629__en-us_topic_0000001441998304_a34c0dcfbb1ff47d78823499714a7ee74">Sets the column to its default value.</p>
|
|
<p id="EN-US_TOPIC_0000001856238629__en-us_topic_0000001441998304_ad63c42c579374304bfcbc50a12730acf">The value is <strong id="EN-US_TOPIC_0000001856238629__en-us_topic_0000001441998304_b14899195993119">NULL</strong> if no specified default value has been assigned to it.</p>
|
|
</li><li id="EN-US_TOPIC_0000001856238629__en-us_topic_0000001441998304_l5f64009f66594eec8d3f71dcc2ecba45"><strong id="EN-US_TOPIC_0000001856238629__en-us_topic_0000001441998304_a8b8c331618d740b2ba581bf6e3710474">from_list</strong><p id="EN-US_TOPIC_0000001856238629__en-us_topic_0000001441998304_ad94597688fa44e88b2e880934b744bcb">A list of table expressions, allowing columns from other tables to appear in the <strong id="EN-US_TOPIC_0000001856238629__en-us_topic_0000001441998304_b1064983123213">WHERE</strong> condition and the update expressions. This is similar to the list of tables that can be specified in the <strong id="EN-US_TOPIC_0000001856238629__en-us_topic_0000001441998304_b104383106323">FROM</strong> clause of a <strong id="EN-US_TOPIC_0000001856238629__en-us_topic_0000001441998304_b1943812102326">SELECT</strong> statement.</p>
|
|
<div class="notice" id="EN-US_TOPIC_0000001856238629__en-us_topic_0000001441998304_n951a3aaaf9ea4965971145ac8008132e"><span class="noticetitle"><img src="public_sys-resources/notice_3.0-en-us.png"> </span><div class="noticebody"><p id="EN-US_TOPIC_0000001856238629__en-us_topic_0000001441998304_a5593275208aa489d86c67c22e1936e92">Note that the target table must not appear in the <strong id="EN-US_TOPIC_0000001856238629__en-us_topic_0000001441998304_b1135916173217">from_list</strong>, unless you intend a self-join (in which case it must appear with an alias in the <strong id="EN-US_TOPIC_0000001856238629__en-us_topic_0000001441998304_b93661613327">from_list</strong>).</p>
|
|
</div></div>
|
|
</li><li id="EN-US_TOPIC_0000001856238629__en-us_topic_0000001441998304_l248f693e1e66469daee4bbd9f4dfb60a"><strong id="EN-US_TOPIC_0000001856238629__en-us_topic_0000001441998304_ae847319e57bd457cb07c242bd889b52c">condition</strong><p id="EN-US_TOPIC_0000001856238629__en-us_topic_0000001441998304_afde6a4043e2f4bfbb283e05df496d4a7">An expression that returns a value of type <strong id="EN-US_TOPIC_0000001856238629__en-us_topic_0000001441998304_b7549172793212"><span id="EN-US_TOPIC_0000001856238629__en-us_topic_0000001441998304_text1458413113271">boolean</span></strong>. Only rows for which this expression returns <strong id="EN-US_TOPIC_0000001856238629__en-us_topic_0000001441998304_b9633132143218">true</strong> are updated.</p>
|
|
</li></ul>
|
|
</div>
|
|
<div class="section" id="EN-US_TOPIC_0000001856238629__en-us_topic_0000001441998304_sc62f0ffeacde4228a7e8c56b5a2b85f1"><h4 class="sectiontitle">Example</h4><div class="p" id="EN-US_TOPIC_0000001856238629__en-us_topic_0000001441998304_p1043284416163">Create the <strong id="EN-US_TOPIC_0000001856238629__en-us_topic_0000001441998304_b141704113217">reason_update</strong> table.<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001856238629__en-us_topic_0000001441998304_screen7911193052914"><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></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">reason_update</span>
|
|
<span class="p">(</span>
|
|
<span class="w"> </span><span class="n">TABLE_SK</span><span class="w"> </span><span class="nb">INTEGER</span><span class="w"> </span><span class="p">,</span>
|
|
<span class="w"> </span><span class="n">TABLE_ID</span><span class="w"> </span><span class="nb">VARCHAR</span><span class="p">(</span><span class="mi">20</span><span class="p">)</span><span class="w"> </span><span class="p">,</span>
|
|
<span class="w"> </span><span class="n">TABLE_NA</span><span class="w"> </span><span class="nb">VARCHAR</span><span class="p">(</span><span class="mi">20</span><span class="p">)</span>
|
|
<span class="p">)</span><span class="k">WITH</span><span class="p">(</span><span class="n">ORIENTATION</span><span class="o">=</span><span class="k">COLUMN</span><span class="p">,</span><span class="w"> </span><span class="n">ENABLE_HSTORE</span><span class="o">=</span><span class="k">ON</span><span class="p">);</span>
|
|
</pre></div></td></tr></table></div>
|
|
|
|
</div>
|
|
</div>
|
|
<div class="p" id="EN-US_TOPIC_0000001856238629__en-us_topic_0000001441998304_p6381205932718">Insert data to the <strong id="EN-US_TOPIC_0000001856238629__en-us_topic_0000001441998304_b1493119512324">reason_update</strong> table.<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001856238629__en-us_topic_0000001441998304_screen638110596279"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">INSERT</span><span class="w"> </span><span class="k">INTO</span><span class="w"> </span><span class="n">reason_update</span><span class="w"> </span><span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="s1">'S01'</span><span class="p">,</span><span class="w"> </span><span class="s1">'StudentA'</span><span class="p">),(</span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="s1">'T01'</span><span class="p">,</span><span class="w"> </span><span class="s1">'TeacherA'</span><span class="p">),(</span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="s1">'T02'</span><span class="p">,</span><span class="w"> </span><span class="s1">'TeacherB'</span><span class="p">);</span>
|
|
</pre></div></td></tr></table></div>
|
|
|
|
</div>
|
|
</div>
|
|
<div class="p" id="EN-US_TOPIC_0000001856238629__en-us_topic_0000001441998304_p7175143012171">Perform the UPDATE operation on the <strong id="EN-US_TOPIC_0000001856238629__en-us_topic_0000001441998304_b18283359133210">reason_update</strong> table.<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001856238629__en-us_topic_0000001441998304_screen4175730141715"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">UPDATE</span><span class="w"> </span><span class="n">reason_update</span><span class="w"> </span><span class="k">SET</span><span class="w"> </span><span class="n">TABLE_NA</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s1">'TeacherD'</span><span class="w"> </span><span class="k">where</span><span class="w"> </span><span class="n">TABLE_SK</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">3</span><span class="p">;</span>
|
|
</pre></div></td></tr></table></div>
|
|
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div>
|
|
<div class="familylinks">
|
|
<div class="parentlink"><strong>Parent topic:</strong> <a href="dws_04_1026.html">Hybrid Data Warehouse Syntax</a></div>
|
|
</div>
|
|
</div>
|
|
|