doc-exports/docs/dws/dev/dws_06_0231.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

71 lines
18 KiB
HTML

<a name="EN-US_TOPIC_0000001460721324"></a><a name="EN-US_TOPIC_0000001460721324"></a>
<h1 class="topictitle1">DELETE</h1>
<div id="body8662426"><div class="section" id="EN-US_TOPIC_0000001460721324__sc38eadebc8e74e1e8200bca116ca55ef"><h4 class="sectiontitle">Function</h4><p id="EN-US_TOPIC_0000001460721324__a7eac4568d9ee4622a714b080a77cdd6c">Deletes rows that satisfy the <strong id="EN-US_TOPIC_0000001460721324__b1306882285426">WHERE</strong> clause from the specified table. If the <strong id="EN-US_TOPIC_0000001460721324__en-us_topic_0040044931_b5051053885426">WHERE</strong> clause does not exist, all rows in the table will be deleted. The result is a valid, but an empty table.</p>
</div>
<div class="section" id="EN-US_TOPIC_0000001460721324__s382c620cdede4a91ba5d429f091c14c9"><h4 class="sectiontitle">Precautions</h4><ul id="EN-US_TOPIC_0000001460721324__u83811bebe7004526bcd5b0d5cb5278d2"><li id="EN-US_TOPIC_0000001460721324__l04a6aa14ca12431283fa53fc564ca0ea">You must have the DELETE permission on the table to delete from it, as well as the SELECT permission for any table in the <strong id="EN-US_TOPIC_0000001460721324__b4078822385426">USING</strong> clause or whose values are read in the <strong id="EN-US_TOPIC_0000001460721324__b3154968885426">condition</strong>.</li><li id="EN-US_TOPIC_0000001460721324__li1129041211274">For replication tables, <strong id="EN-US_TOPIC_0000001460721324__b152246889852421">DELETE</strong> can be performed only where:<ul id="EN-US_TOPIC_0000001460721324__ul1382214201275"><li id="EN-US_TOPIC_0000001460721324__li11430216192713">There are primary key constraints.</li><li id="EN-US_TOPIC_0000001460721324__li8992141512293">The execution plan can be pushed down.</li></ul>
</li><li id="EN-US_TOPIC_0000001460721324__l6ef7a5e157f242c7b44da063f42fd193">For column-store tables, the <strong id="EN-US_TOPIC_0000001460721324__en-us_topic_0058966033_b842352706173053">RETURNING</strong> clause is currently not supported.</li></ul>
</div>
<div class="section" id="EN-US_TOPIC_0000001460721324__s63e68d20fc8a4670b54b531fc5722bb9"><h4 class="sectiontitle">Syntax</h4><div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001460721324__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>
<span class="normal">5</span></pre></div></td><td class="code"><div><pre><span></span><span class="p">[</span><span class="w"> </span><span class="k">WITH</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="k">RECURSIVE</span><span class="w"> </span><span class="p">]</span><span class="w"> </span><span class="n">with_query</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">DELETE</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">FROM</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="w"> </span><span class="p">[</span><span class="w"> </span><span class="k">USING</span><span class="w"> </span><span class="n">using_list</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="o">|</span><span class="w"> </span><span class="k">WHERE</span><span class="w"> </span><span class="k">CURRENT</span><span class="w"> </span><span class="k">OF</span><span class="w"> </span><span class="k">cursor_name</span><span class="w"> </span><span class="p">]</span>
<span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="n">RETURNING</span><span class="w"> </span><span class="err">{</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="err">{</span><span class="w"> </span><span class="n">output_expr</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="n">output_name</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="err">}</span><span class="w"> </span><span class="p">];</span>
</pre></div></td></tr></table></div>
</div>
</div>
<div class="section" id="EN-US_TOPIC_0000001460721324__s0568dfe900e948eaa67d0a335c26701c"><h4 class="sectiontitle">Parameter Description</h4><ul id="EN-US_TOPIC_0000001460721324__ua3cdf4f3c73f4d4f9f931f40929ad83b"><li id="EN-US_TOPIC_0000001460721324__ld38062ebead941c284103cc83c53bd16"><strong id="EN-US_TOPIC_0000001460721324__en-us_topic_0059778379_b19065306508">WITH [ RECURSIVE ] with_query [, ...]</strong><p id="EN-US_TOPIC_0000001460721324__a986a116f7840433bb0a19cf9c64842f8">The <strong id="EN-US_TOPIC_0000001460721324__en-us_topic_0058966196_b84235270693837">WITH</strong> clause allows you to specify one or more subqueries that can be referenced by name in the primary query, equal to temporary table.</p>
<p id="EN-US_TOPIC_0000001460721324__a3d6a7fb23a7e433dac3e7db94ec6595e">If <strong id="EN-US_TOPIC_0000001460721324__en-us_topic_0058966196_b84235270693847">RECURSIVE</strong> is specified, it allows a <strong id="EN-US_TOPIC_0000001460721324__en-us_topic_0058966196_b84235270693853">SELECT</strong> subquery to reference itself by name.</p>
<p id="EN-US_TOPIC_0000001460721324__ac389e37c7363438aa52da1c125ad2cad">The with_query detailed format is as follows:</p>
<pre class="screen" id="EN-US_TOPIC_0000001460721324__screen11914617153010">with_query_name [ ( column_name [, ...] ) ] AS
( {select | values | insert | update | delete} )</pre>
<p id="EN-US_TOPIC_0000001460721324__ac5670fa7fb5541f8b9d4e802d57019d9"><strong id="EN-US_TOPIC_0000001460721324__b1410183423018">with_query_name</strong> specifies the name of the result set generated by a subquery. Such names can be used to access the result sets of subqueries in a query.</p>
<p id="EN-US_TOPIC_0000001460721324__a23e83c12a68745fd9c8c34d1b448d364"><strong id="EN-US_TOPIC_0000001460721324__en-us_topic_0058966196_b842352706112838">column_name</strong> specifies the column name displayed in the subquery result set.</p>
<p id="EN-US_TOPIC_0000001460721324__a232c160c065c4b68829d3efca31623fe">Each subquery can be a <strong id="EN-US_TOPIC_0000001460721324__en-us_topic_0058966196_b84235270693925">SELECT</strong>, <strong id="EN-US_TOPIC_0000001460721324__en-us_topic_0058966196_b84235270693928">VALUES</strong>, <strong id="EN-US_TOPIC_0000001460721324__en-us_topic_0058966196_b84235270693932">INSERT</strong>, <strong id="EN-US_TOPIC_0000001460721324__en-us_topic_0058966196_b84235270693936">UPDATE</strong> or <strong id="EN-US_TOPIC_0000001460721324__en-us_topic_0058966196_b84235270693940">DELETE</strong> statement.</p>
</li><li id="EN-US_TOPIC_0000001460721324__li3827664622714"><strong id="EN-US_TOPIC_0000001460721324__b2367135484016">plan_hint</strong> clause<p id="EN-US_TOPIC_0000001460721324__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_0000001460721324__i1710618472613">Data Warehouse Service (DWS) Developer Guide</em>.</p>
</li><li id="EN-US_TOPIC_0000001460721324__la448a7d3789c4ff58ff028d37d8be671"><strong id="EN-US_TOPIC_0000001460721324__a9a91341bf47d4e76ba08c2b1ea4c14c4">ONLY</strong><p id="EN-US_TOPIC_0000001460721324__a747e586cb2464423b50a456e2c0513f5">If <strong id="EN-US_TOPIC_0000001460721324__b55289100533623">ONLY</strong> is specified, only that table is deleted. If <strong id="EN-US_TOPIC_0000001460721324__b44107010233623">ONLY</strong> is not specified, this table and all its sub-tables are deleted.</p>
</li><li id="EN-US_TOPIC_0000001460721324__lc1ea1869abc947bfbff43525ed13b5bb"><strong id="EN-US_TOPIC_0000001460721324__aa1749132c9aa4b4fa4b4e85e5d1573ea">table_name</strong><p id="EN-US_TOPIC_0000001460721324__a76155b18f70d4296b9d10f43acf2290b">Specifies the name (optionally schema-qualified) of a target table.</p>
<p id="EN-US_TOPIC_0000001460721324__a22f6113763154108ab395975a7a305be">Value range: an existing table name</p>
</li><li id="EN-US_TOPIC_0000001460721324__l240d9da52c064a12a06679599c3a27f1"><strong id="EN-US_TOPIC_0000001460721324__a208b1cefb34548f2bbf0ae61a8813021">alias</strong><p id="EN-US_TOPIC_0000001460721324__a0e888f1cf58e48ce93b2144f8cbd6e53">Specifies the alias for the target table.</p>
<p id="EN-US_TOPIC_0000001460721324__ac8936d6d732b47959e8046286dc38da4">Value range: a string. It must comply with the naming convention.</p>
</li><li id="EN-US_TOPIC_0000001460721324__l6f2bf2ae63094b4488040532097a8a6b"><strong id="EN-US_TOPIC_0000001460721324__a6710d01abd094654b331efd5b25bac18">using_list</strong><p id="EN-US_TOPIC_0000001460721324__a8ad40173192343098f7baa98c38d5c55">Specifies the <strong id="EN-US_TOPIC_0000001460721324__b10981112153313">USING</strong> clause.</p>
</li><li id="EN-US_TOPIC_0000001460721324__l796ce0e3e76841169a171ff3849bff25"><strong id="EN-US_TOPIC_0000001460721324__ac7b4f6dd455c4c3280cfba686de23671">condition</strong><p id="EN-US_TOPIC_0000001460721324__abbc05041c0314d328643ead456cc0b4c">Specifies an expression that returns a value of type <span id="EN-US_TOPIC_0000001460721324__text87165226913">boolean</span>. Only rows for which this expression returns <strong id="EN-US_TOPIC_0000001460721324__b105851913194017">true</strong> will be deleted.</p>
</li><li id="EN-US_TOPIC_0000001460721324__lb6bdf7fcbc8b466e89fbf637d87802ef"><strong id="EN-US_TOPIC_0000001460721324__a824b9469044446a0b29868649908565f">WHERE CURRENT OF cursor_name</strong><p id="EN-US_TOPIC_0000001460721324__a0f4ebdcee5f04bac94884771f9299c3a">Not supported currently. Only syntax interface is provided.</p>
</li><li id="EN-US_TOPIC_0000001460721324__lf379dc2a421f40598087bf2883dca079"><strong id="EN-US_TOPIC_0000001460721324__a446588ca9c54412d9e6f6181b3ac2d2d">output_expr</strong><p id="EN-US_TOPIC_0000001460721324__a1309b8a6bf2940699db70a7c4edc14bb">Specifies an expression to be computed and returned by the <strong id="EN-US_TOPIC_0000001460721324__b26532261182532">DELETE</strong> command after each row is deleted. The expression can use any column names of the table. Write * to return all columns.</p>
</li><li id="EN-US_TOPIC_0000001460721324__lb47a5f4353204aedaa5dbb720eee53b4"><strong id="EN-US_TOPIC_0000001460721324__a918a35ac35824f1385844ecd39799341">output_name</strong><p id="EN-US_TOPIC_0000001460721324__a347e3f4a9382451aa979de7a97d98de6">Specifies a name to use for a returned column.</p>
<p id="EN-US_TOPIC_0000001460721324__ae446c85782dd46bfbe1a48301d48ee89">Value range: a string. It must comply with the naming convention.</p>
</li></ul>
</div>
<div class="section" id="EN-US_TOPIC_0000001460721324__sc62f0ffeacde4228a7e8c56b5a2b85f1"><h4 class="sectiontitle">Examples</h4><p id="EN-US_TOPIC_0000001460721324__p824374481316">Create the <strong id="EN-US_TOPIC_0000001460721324__b17753596033623"><span id="EN-US_TOPIC_0000001460721324__text63962501433623">tpcds.</span>customer_address_bak</strong> table.</p>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001460721324__screen16145195221318"><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">CREATE</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">tpcds</span><span class="p">.</span><span class="n">customer_address_bak</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">tpcds</span><span class="p">.</span><span class="n">customer_address</span><span class="p">;</span>
</pre></div></td></tr></table></div>
</div>
<p id="EN-US_TOPIC_0000001460721324__p124311442139">Delete employees whose <strong id="EN-US_TOPIC_0000001460721324__b58415789633623">ca_address_sk</strong> is less than <strong id="EN-US_TOPIC_0000001460721324__b9469551933623">14888</strong> in the <strong id="EN-US_TOPIC_0000001460721324__b59044060833623"><span id="EN-US_TOPIC_0000001460721324__text138451751333623">tpcds.</span>customer_address_bak</strong> table.</p>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001460721324__screen17283105810138"><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">DELETE</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">tpcds</span><span class="p">.</span><span class="n">customer_address_bak</span><span class="w"> </span><span class="k">WHERE</span><span class="w"> </span><span class="n">ca_address_sk</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">14888</span><span class="p">;</span>
</pre></div></td></tr></table></div>
</div>
<p id="EN-US_TOPIC_0000001460721324__p1363726154112">Delete the employees whose <strong id="EN-US_TOPIC_0000001460721324__b1899912575480">ca_address_sk</strong> is <strong id="EN-US_TOPIC_0000001460721324__b166282154916">14891</strong>, <strong id="EN-US_TOPIC_0000001460721324__b13736581496">14893</strong>, or <strong id="EN-US_TOPIC_0000001460721324__b198311313194913">14895</strong> from <strong id="EN-US_TOPIC_0000001460721324__b1717017236492"><span id="EN-US_TOPIC_0000001460721324__text1756143418417">tpcds.</span>customer_address_bak</strong>.</p>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001460721324__screen364004111415"><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">DELETE</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">tpcds</span><span class="p">.</span><span class="n">customer_address_bak</span><span class="w"> </span><span class="k">WHERE</span><span class="w"> </span><span class="n">ca_address_sk</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="p">(</span><span class="mi">14891</span><span class="p">,</span><span class="mi">14893</span><span class="p">,</span><span class="mi">14895</span><span class="p">);</span>
</pre></div></td></tr></table></div>
</div>
<p id="EN-US_TOPIC_0000001460721324__p1024317442137">Delete all data in the <strong id="EN-US_TOPIC_0000001460721324__b29953847233623"><span id="EN-US_TOPIC_0000001460721324__text76240293133623">tpcds.</span>customer_address_bak</strong> table.</p>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001460721324__screen10333555148"><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">DELETE</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">tpcds</span><span class="p">.</span><span class="n">customer_address_bak</span><span class="p">;</span>
</pre></div></td></tr></table></div>
</div>
<p id="EN-US_TOPIC_0000001460721324__p13851105724112">Use a subquery (to delete the row-store table <strong id="EN-US_TOPIC_0000001460721324__b169631256343"><span id="EN-US_TOPIC_0000001460721324__text1096212513345">tpcds.</span>warehouse_t30</strong>) to obtain a temporary table <strong id="EN-US_TOPIC_0000001460721324__b49634513347">temp_t</strong>, and then query all data in the temporary table <strong id="EN-US_TOPIC_0000001460721324__b2096345143414">temp_t</strong>:</p>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001460721324__screen24191918195514"><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">WITH</span><span class="w"> </span><span class="n">temp_t</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="p">(</span><span class="k">DELETE</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">tpcds</span><span class="p">.</span><span class="n">warehouse_t30</span><span class="w"> </span><span class="n">RETURNING</span><span class="w"> </span><span class="o">*</span><span class="p">)</span><span class="w"> </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">temp_t</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="mi">1</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>