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>
105 lines
20 KiB
HTML
105 lines
20 KiB
HTML
<a name="EN-US_TOPIC_0000001233628563"></a><a name="EN-US_TOPIC_0000001233628563"></a>
|
|
|
|
<h1 class="topictitle1">DELETE</h1>
|
|
<div id="body8662426"><div class="section" id="EN-US_TOPIC_0000001233628563__sc38eadebc8e74e1e8200bca116ca55ef"><h4 class="sectiontitle">Function</h4><p id="EN-US_TOPIC_0000001233628563__a7eac4568d9ee4622a714b080a77cdd6c"><strong id="EN-US_TOPIC_0000001233628563__b5364787485426">DELETE</strong> deletes rows that satisfy the <strong id="EN-US_TOPIC_0000001233628563__b1306882285426">WHERE</strong> clause from the specified table. If the <strong id="EN-US_TOPIC_0000001233628563__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_0000001233628563__s382c620cdede4a91ba5d429f091c14c9"><h4 class="sectiontitle">Precautions</h4><ul id="EN-US_TOPIC_0000001233628563__u83811bebe7004526bcd5b0d5cb5278d2"><li id="EN-US_TOPIC_0000001233628563__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_0000001233628563__b4078822385426">USING</strong> clause or whose values are read in the <strong id="EN-US_TOPIC_0000001233628563__b3154968885426">condition</strong>.</li><li id="EN-US_TOPIC_0000001233628563__li1129041211274">For replication tables, <strong id="EN-US_TOPIC_0000001233628563__b86315276428">DELETE</strong> can be performed only in the following two scenarios:<ul id="EN-US_TOPIC_0000001233628563__ul1382214201275"><li id="EN-US_TOPIC_0000001233628563__li11430216192713">Scenarios with primary key constraints.</li><li id="EN-US_TOPIC_0000001233628563__li66221323925">Scenario where the execution plan can be pushed down.</li></ul>
|
|
</li><li id="EN-US_TOPIC_0000001233628563__l6ef7a5e157f242c7b44da063f42fd193">For column-store tables, the <strong id="EN-US_TOPIC_0000001233628563__en-us_topic_0058966033_b842352706173053">RETURNING</strong> clause is currently not supported.</li></ul>
|
|
</div>
|
|
<div class="section" id="EN-US_TOPIC_0000001233628563__s63e68d20fc8a4670b54b531fc5722bb9"><h4 class="sectiontitle">Syntax</h4><div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001233628563__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="k">DELETE</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_0000001233628563__s0568dfe900e948eaa67d0a335c26701c"><h4 class="sectiontitle">Parameter Description</h4><ul id="EN-US_TOPIC_0000001233628563__ua3cdf4f3c73f4d4f9f931f40929ad83b"><li id="EN-US_TOPIC_0000001233628563__ld38062ebead941c284103cc83c53bd16"><strong id="EN-US_TOPIC_0000001233628563__en-us_topic_0059778379_b19065306508">WITH [ RECURSIVE ] with_query [, ...]</strong><p id="EN-US_TOPIC_0000001233628563__a986a116f7840433bb0a19cf9c64842f8">The <strong id="EN-US_TOPIC_0000001233628563__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_0000001233628563__a3d6a7fb23a7e433dac3e7db94ec6595e">If <strong id="EN-US_TOPIC_0000001233628563__en-us_topic_0058966196_b84235270693847">RECURSIVE</strong> is specified, it allows a <strong id="EN-US_TOPIC_0000001233628563__en-us_topic_0058966196_b84235270693853">SELECT</strong> subquery to reference itself by name.</p>
|
|
<p id="EN-US_TOPIC_0000001233628563__ac389e37c7363438aa52da1c125ad2cad">The with_query detailed format is as follows:</p>
|
|
<pre class="screen" id="EN-US_TOPIC_0000001233628563__screen1612464810294">with_query_name [ ( column_name [, ...] ) ] AS
|
|
( {select | values | insert | update | delete} )</pre>
|
|
<p id="EN-US_TOPIC_0000001233628563__ac5670fa7fb5541f8b9d4e802d57019d9">-- <strong id="EN-US_TOPIC_0000001233628563__b52561578214026">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 </p>
|
|
<p id="EN-US_TOPIC_0000001233628563__a23e83c12a68745fd9c8c34d1b448d364"><strong id="EN-US_TOPIC_0000001233628563__en-us_topic_0058966196_b842352706112838">column_name</strong> specifies the column name displayed in the subquery result set.</p>
|
|
<p id="EN-US_TOPIC_0000001233628563__a232c160c065c4b68829d3efca31623fe">Each subquery can be a <strong id="EN-US_TOPIC_0000001233628563__en-us_topic_0058966196_b84235270693925">SELECT</strong>, <strong id="EN-US_TOPIC_0000001233628563__en-us_topic_0058966196_b84235270693928">VALUES</strong>, <strong id="EN-US_TOPIC_0000001233628563__en-us_topic_0058966196_b84235270693932">INSERT</strong>, <strong id="EN-US_TOPIC_0000001233628563__en-us_topic_0058966196_b84235270693936">UPDATE</strong> or <strong id="EN-US_TOPIC_0000001233628563__en-us_topic_0058966196_b84235270693940">DELETE</strong> statement.</p>
|
|
</li><li id="EN-US_TOPIC_0000001233628563__la448a7d3789c4ff58ff028d37d8be671"><strong id="EN-US_TOPIC_0000001233628563__a9a91341bf47d4e76ba08c2b1ea4c14c4">ONLY</strong><p id="EN-US_TOPIC_0000001233628563__a747e586cb2464423b50a456e2c0513f5">If <strong id="EN-US_TOPIC_0000001233628563__b55289100533623">ONLY</strong> is specified, only that table is deleted. If <strong id="EN-US_TOPIC_0000001233628563__b44107010233623">ONLY</strong> is not specified, this table and all its sub-tables are deleted.</p>
|
|
</li><li id="EN-US_TOPIC_0000001233628563__lc1ea1869abc947bfbff43525ed13b5bb"><strong id="EN-US_TOPIC_0000001233628563__aa1749132c9aa4b4fa4b4e85e5d1573ea">table_name</strong><p id="EN-US_TOPIC_0000001233628563__a76155b18f70d4296b9d10f43acf2290b">Specifies the name (optionally schema-qualified) of a target table.</p>
|
|
<p id="EN-US_TOPIC_0000001233628563__a22f6113763154108ab395975a7a305be">Value range: an existing table name</p>
|
|
</li><li id="EN-US_TOPIC_0000001233628563__l240d9da52c064a12a06679599c3a27f1"><strong id="EN-US_TOPIC_0000001233628563__a208b1cefb34548f2bbf0ae61a8813021">alias</strong><p id="EN-US_TOPIC_0000001233628563__a0e888f1cf58e48ce93b2144f8cbd6e53">Specifies the alias for the target table.</p>
|
|
<p id="EN-US_TOPIC_0000001233628563__ac8936d6d732b47959e8046286dc38da4">Value range: a string. It must comply with the naming convention.</p>
|
|
</li><li id="EN-US_TOPIC_0000001233628563__l6f2bf2ae63094b4488040532097a8a6b"><strong id="EN-US_TOPIC_0000001233628563__a6710d01abd094654b331efd5b25bac18">using_list</strong><p id="EN-US_TOPIC_0000001233628563__a8ad40173192343098f7baa98c38d5c55">Specifies the <strong id="EN-US_TOPIC_0000001233628563__b10981112153313">USING</strong> clause.</p>
|
|
</li><li id="EN-US_TOPIC_0000001233628563__l796ce0e3e76841169a171ff3849bff25"><strong id="EN-US_TOPIC_0000001233628563__ac7b4f6dd455c4c3280cfba686de23671">condition</strong><p id="EN-US_TOPIC_0000001233628563__abbc05041c0314d328643ead456cc0b4c">Specifies an expression that returns a value of type <span id="EN-US_TOPIC_0000001233628563__text87165226913">boolean</span>. Only rows for which this expression returns <strong id="EN-US_TOPIC_0000001233628563__b105851913194017">true</strong> will be deleted.</p>
|
|
</li><li id="EN-US_TOPIC_0000001233628563__lb6bdf7fcbc8b466e89fbf637d87802ef"><strong id="EN-US_TOPIC_0000001233628563__a824b9469044446a0b29868649908565f">WHERE CURRENT OF cursor_name</strong><p id="EN-US_TOPIC_0000001233628563__a0f4ebdcee5f04bac94884771f9299c3a">Not supported currently. Only syntax interface is provided.</p>
|
|
</li><li id="EN-US_TOPIC_0000001233628563__lf379dc2a421f40598087bf2883dca079"><strong id="EN-US_TOPIC_0000001233628563__a446588ca9c54412d9e6f6181b3ac2d2d">output_expr</strong><p id="EN-US_TOPIC_0000001233628563__a1309b8a6bf2940699db70a7c4edc14bb">Specifies an expression to be computed and returned by the <strong id="EN-US_TOPIC_0000001233628563__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_0000001233628563__lb47a5f4353204aedaa5dbb720eee53b4"><strong id="EN-US_TOPIC_0000001233628563__a918a35ac35824f1385844ecd39799341">output_name</strong><p id="EN-US_TOPIC_0000001233628563__a347e3f4a9382451aa979de7a97d98de6">Specifies a name to use for a returned column.</p>
|
|
<p id="EN-US_TOPIC_0000001233628563__ae446c85782dd46bfbe1a48301d48ee89">Value range: a string. It must comply with the naming convention.</p>
|
|
</li></ul>
|
|
</div>
|
|
<div class="section" id="EN-US_TOPIC_0000001233628563__sc62f0ffeacde4228a7e8c56b5a2b85f1"><h4 class="sectiontitle">Examples</h4><p id="EN-US_TOPIC_0000001233628563__p6227126154818">Create a range partitioned table <strong id="EN-US_TOPIC_0000001233628563__b162588253411">customer_address_bak</strong>:</p>
|
|
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001233628563__screen55110301922"><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></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="k">IF</span><span class="w"> </span><span class="k">EXISTS</span><span class="w"> </span><span class="n">customer_address_bak</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">customer_address_bak</span>
|
|
<span class="p">(</span>
|
|
<span class="w"> </span><span class="n">ca_address_sk</span><span class="w"> </span><span class="nb">INTEGER</span><span class="w"> </span><span class="k">NOT</span><span class="w"> </span><span class="k">NULL</span><span class="w"> </span><span class="p">,</span>
|
|
<span class="w"> </span><span class="n">ca_address_id</span><span class="w"> </span><span class="nb">CHARACTER</span><span class="p">(</span><span class="mi">16</span><span class="p">)</span><span class="w"> </span><span class="k">NOT</span><span class="w"> </span><span class="k">NULL</span><span class="w"> </span><span class="p">,</span>
|
|
<span class="w"> </span><span class="n">ca_street_number</span><span class="w"> </span><span class="nb">CHARACTER</span><span class="p">(</span><span class="mi">10</span><span class="p">)</span><span class="w"> </span><span class="p">,</span>
|
|
<span class="w"> </span><span class="n">ca_street_name</span><span class="w"> </span><span class="nb">CHARACTER</span><span class="w"> </span><span class="nb">varying</span><span class="p">(</span><span class="mi">60</span><span class="p">)</span><span class="w"> </span><span class="p">,</span>
|
|
<span class="w"> </span><span class="n">ca_street_type</span><span class="w"> </span><span class="nb">CHARACTER</span><span class="p">(</span><span class="mi">15</span><span class="p">)</span><span class="w"> </span><span class="p">,</span>
|
|
<span class="w"> </span><span class="n">ca_suite_number</span><span class="w"> </span><span class="nb">CHARACTER</span><span class="p">(</span><span class="mi">10</span><span class="p">)</span><span class="w"> </span>
|
|
<span class="p">)</span>
|
|
<span class="n">DISTRIBUTE</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="n">HASH</span><span class="w"> </span><span class="p">(</span><span class="n">ca_address_sk</span><span class="p">)</span>
|
|
<span class="n">PARTITION</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="n">RANGE</span><span class="p">(</span><span class="n">ca_address_sk</span><span class="p">)</span>
|
|
<span class="p">(</span>
|
|
<span class="w"> </span><span class="n">PARTITION</span><span class="w"> </span><span class="n">P1</span><span class="w"> </span><span class="k">VALUES</span><span class="w"> </span><span class="k">LESS</span><span class="w"> </span><span class="k">THAN</span><span class="p">(</span><span class="mi">2450815</span><span class="p">),</span>
|
|
<span class="w"> </span><span class="n">PARTITION</span><span class="w"> </span><span class="n">P2</span><span class="w"> </span><span class="k">VALUES</span><span class="w"> </span><span class="k">LESS</span><span class="w"> </span><span class="k">THAN</span><span class="p">(</span><span class="mi">2451179</span><span class="p">),</span>
|
|
<span class="w"> </span><span class="n">PARTITION</span><span class="w"> </span><span class="n">P3</span><span class="w"> </span><span class="k">VALUES</span><span class="w"> </span><span class="k">LESS</span><span class="w"> </span><span class="k">THAN</span><span class="p">(</span><span class="mi">2451544</span><span class="p">),</span>
|
|
<span class="w"> </span><span class="n">PARTITION</span><span class="w"> </span><span class="n">P4</span><span class="w"> </span><span class="k">VALUES</span><span class="w"> </span><span class="k">LESS</span><span class="w"> </span><span class="k">THAN</span><span class="p">(</span><span class="k">MAXVALUE</span><span class="p">)</span>
|
|
<span class="p">);</span>
|
|
</pre></div></td></tr></table></div>
|
|
|
|
</div>
|
|
<p id="EN-US_TOPIC_0000001233628563__p124311442139">Delete employees whose <strong id="EN-US_TOPIC_0000001233628563__b58415789633623">ca_address_sk</strong> is less than <strong id="EN-US_TOPIC_0000001233628563__b9469551933623">14888</strong> in the <strong id="EN-US_TOPIC_0000001233628563__b59044060833623"><span id="EN-US_TOPIC_0000001233628563__text138451751333623">tpcds.</span>customer_address_bak</strong> table:</p>
|
|
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001233628563__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">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"><</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_0000001233628563__p1363726154112">Delete the employees whose <strong id="EN-US_TOPIC_0000001233628563__b1899912575480">ca_address_sk</strong> is <strong id="EN-US_TOPIC_0000001233628563__b166282154916">14891</strong>, <strong id="EN-US_TOPIC_0000001233628563__b13736581496">14893</strong>, and <strong id="EN-US_TOPIC_0000001233628563__b198311313194913">14895</strong> from <strong id="EN-US_TOPIC_0000001233628563__b1717017236492"><span id="EN-US_TOPIC_0000001233628563__text1756143418417">tpcds.</span> customer_address_bak</strong>:</p>
|
|
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001233628563__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">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_0000001233628563__p1024317442137">Delete all data in <strong id="EN-US_TOPIC_0000001233628563__b29953847233623">customer_address_bak</strong>:</p>
|
|
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001233628563__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">customer_address_bak</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>
|
|
|