doc-exports/docs/dws/dev/dws_06_0225.html
Lu, Huayi e6fa411af0 DWS DEV 830.201 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-05-16 07:24:04 +00:00

105 lines
19 KiB
HTML

<a name="EN-US_TOPIC_0000001233510109"></a><a name="EN-US_TOPIC_0000001233510109"></a>
<h1 class="topictitle1">TRUNCATE</h1>
<div id="body8662426"><div class="section" id="EN-US_TOPIC_0000001233510109__sbd36550b75f74804baacfa83e897796e"><h4 class="sectiontitle">Function</h4><p id="EN-US_TOPIC_0000001233510109__p9350410219"><strong id="EN-US_TOPIC_0000001233510109__b1777225165812">TRUNCATE</strong> quickly removes all rows from a database table.</p>
<p id="EN-US_TOPIC_0000001233510109__af57d7228990f4842beafa608dd6b125d">It has the same effect as an unqualified <strong id="EN-US_TOPIC_0000001233510109__b718613010586">DELETE</strong> on each table, but it is faster since it does not actually scan the tables. This is most useful on large tables.</p>
</div>
<div class="section" id="EN-US_TOPIC_0000001233510109__section5258164117111"><h4 class="sectiontitle">Precautions</h4><ul id="EN-US_TOPIC_0000001233510109__ul878427856"><li id="EN-US_TOPIC_0000001233510109__li578417717511"><strong id="EN-US_TOPIC_0000001233510109__b1162765335815">TRUNCATE TABLE</strong> has the same function as a <strong id="EN-US_TOPIC_0000001233510109__b8627145318582">DELETE</strong> statement with no <strong id="EN-US_TOPIC_0000001233510109__b14627185315815">WHERE</strong> clause, emptying a table.</li><li id="EN-US_TOPIC_0000001233510109__li61083133514"><strong id="EN-US_TOPIC_0000001233510109__b7456083144625">TRUNCATE TABLE</strong> uses less system and transaction log resources as compared with <strong id="EN-US_TOPIC_0000001233510109__b67104755144625">DELETE</strong>.<ul id="EN-US_TOPIC_0000001233510109__ul102061210627"><li id="EN-US_TOPIC_0000001233510109__li1620616101527"><strong id="EN-US_TOPIC_0000001233510109__b64113529144625">DELETE</strong> deletes a row each time, and records the deletion of each row in the transaction log.</li><li id="EN-US_TOPIC_0000001233510109__li1720711108217"><strong id="EN-US_TOPIC_0000001233510109__b3244231504">TRUNCATE TABLE</strong> deletes all rows in a table by releasing the data page storing the table data, and records the releasing of the data page only in the transaction log.</li></ul>
</li><li id="EN-US_TOPIC_0000001233510109__li1465718241155">The differences between <strong id="EN-US_TOPIC_0000001233510109__b2072610391807">TRUNCATE</strong>, <strong id="EN-US_TOPIC_0000001233510109__b1972619391202">DELETE</strong>, and <strong id="EN-US_TOPIC_0000001233510109__b972633912013">DROP</strong> are as follows:<ul id="EN-US_TOPIC_0000001233510109__ul11208110828"><li id="EN-US_TOPIC_0000001233510109__li1220914101523"><strong id="EN-US_TOPIC_0000001233510109__b59296540015">TRUNCATE TABLE</strong> deletes content, releases space, but does not delete definitions.</li><li id="EN-US_TOPIC_0000001233510109__li121021014220"><strong id="EN-US_TOPIC_0000001233510109__b169751232017">DELETE TABLE</strong> deletes content, but does not delete definitions nor release space.</li><li id="EN-US_TOPIC_0000001233510109__li421116102219"><strong id="EN-US_TOPIC_0000001233510109__b660071211117">DROP TABLE</strong> deletes content and definitions, and releases space.</li></ul>
</li></ul>
</div>
<div class="section" id="EN-US_TOPIC_0000001233510109__se1a57ccfec154817927056d958d32929"><h4 class="sectiontitle">Syntax</h4><ul id="EN-US_TOPIC_0000001233510109__u135eab53036f41bbafdc2c301523a208"><li id="EN-US_TOPIC_0000001233510109__l1e6e87b2bfda491da6cd1699cd899344"><strong id="EN-US_TOPIC_0000001233510109__en-us_topic_0058965900_b84235270616652">TRUNCATE</strong> empties a table or set of tables.</li></ul>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001233510109__sb029531e2bec4f23a18ac95c225708dd"><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">TRUNCATE</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </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="err">{</span><span class="p">[[</span><span class="n">database_name</span><span class="p">.]</span><span class="k">schema_name</span><span class="p">.]</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="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="k">CONTINUE</span><span class="w"> </span><span class="k">IDENTITY</span><span class="w"> </span><span class="p">]</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="k">CASCADE</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="k">RESTRICT</span><span class="w"> </span><span class="p">];</span>
</pre></div></td></tr></table></div>
</div>
<ul id="EN-US_TOPIC_0000001233510109__ua9bb60ca9396433ba501c31ba58be2ef"><li id="EN-US_TOPIC_0000001233510109__l1f67ac85f57f4cc3a7feb179c5e0f7a7">Truncate the data in a partition.</li></ul>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001233510109__s474d838e1a5145b69d9f41b1acc022a7"><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="k">ALTER</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="p">[</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="p">]</span><span class="w"> </span><span class="err">{</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="p">[[</span><span class="n">database_name</span><span class="p">.]</span><span class="k">schema_name</span><span class="p">.]</span><span class="k">table_name</span><span class="w"> </span>
<span class="w"> </span><span class="o">|</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="w"> </span><span class="o">|</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="err">}</span><span class="w"> </span>
<span class="w"> </span><span class="k">TRUNCATE</span><span class="w"> </span><span class="n">PARTITION</span><span class="w"> </span><span class="err">{</span><span class="w"> </span><span class="n">partition_name</span><span class="w"> </span>
<span class="w"> </span><span class="o">|</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_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><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_0000001233510109__s76d09d017f8345e28254aa6f4539e4f1"><h4 class="sectiontitle">Parameter Description</h4><ul id="EN-US_TOPIC_0000001233510109__ub0a19e36b4fc4d188f964a07b16011c3"><li id="EN-US_TOPIC_0000001233510109__l36ce209efdb44eed9139ddf63c1bbb9d"><strong id="EN-US_TOPIC_0000001233510109__a67fdef64a20b4d5bab69b7e0977ce620">ONLY</strong><p id="EN-US_TOPIC_0000001233510109__a54541e4a7b65413fb0119cdd67091633">If <strong id="EN-US_TOPIC_0000001233510109__b84235270694252">ONLY</strong> is specified, only the specified table is cleared. Otherwise, the table and all its subtables (if any) are cleared.</p>
</li><li id="EN-US_TOPIC_0000001233510109__li6459344161615"><strong id="EN-US_TOPIC_0000001233510109__a403f72158c71455fab293a3f2a592521">database_name</strong><p id="EN-US_TOPIC_0000001233510109__p1459184431613">Database name of the target table</p>
</li><li id="EN-US_TOPIC_0000001233510109__li117865291617"><strong id="EN-US_TOPIC_0000001233510109__a77f54bb1d5f84a3b8c05302f3f958438">schema_name</strong><p id="EN-US_TOPIC_0000001233510109__p1079652111617">Schema name of the target table</p>
</li><li id="EN-US_TOPIC_0000001233510109__l69c398319e694324a3255932abb82529"><strong id="EN-US_TOPIC_0000001233510109__ad2716b2a5d2643d0b4cb1bf4bb5efad8">table_name</strong><p id="EN-US_TOPIC_0000001233510109__a0441a7adc34f4aa8b91d484e58c1f099">Specifies the name (optionally schema-qualified) of a target table.</p>
<p id="EN-US_TOPIC_0000001233510109__a36667360fc6c42e698a84ad68e4bf291">Value range: an existing table name</p>
</li><li id="EN-US_TOPIC_0000001233510109__l22125bd36a364a778f0e73057f914ac3"><strong id="EN-US_TOPIC_0000001233510109__afd83560c78e94943aefaaa26821bfe5f">CONTINUE IDENTITY</strong><p id="EN-US_TOPIC_0000001233510109__aba2be56ff98241168dbb279766692a79">Does not change the values of sequences. This is the default.</p>
</li><li id="EN-US_TOPIC_0000001233510109__ladf0dd789db941f1bf9774b4b4ad6f30"><strong id="EN-US_TOPIC_0000001233510109__a5f9f7c3da3064230b3d456968c0b24e6">CASCADE | RESTRICT</strong><ul id="EN-US_TOPIC_0000001233510109__u920967ea646b490fbe752eaea52f73d3"><li id="EN-US_TOPIC_0000001233510109__l5cb8183c4e294a509003ef2c88501a58"><strong id="EN-US_TOPIC_0000001233510109__b842352706161412">CASCADE</strong>: automatically truncates all tables that have foreign-key references to any of the named tables, or to any tables added to the group due to <strong id="EN-US_TOPIC_0000001233510109__b100851575733626">CASCADE</strong>.</li><li id="EN-US_TOPIC_0000001233510109__l01eaac29733f4212b161fe35c0256581"><strong id="EN-US_TOPIC_0000001233510109__b842352706161428">RESTRICT</strong> (default): refuses to truncate if any of the tables have foreign-key references from tables that are not listed in the command.</li></ul>
</li><li id="EN-US_TOPIC_0000001233510109__le9623d23e1d24d63b52bcda64825be3e"><strong id="EN-US_TOPIC_0000001233510109__a635af836ffbf4ee5aa386cdef9ef4326">partition_name</strong><p id="EN-US_TOPIC_0000001233510109__a14326ca2ffd748bbaacb3ea0d974c57d">Indicates the partition in the target partition table.</p>
<p id="EN-US_TOPIC_0000001233510109__a525b4f86b98c41ea99f08d9f5216b3af">Value range: An existing partition name.</p>
</li><li id="EN-US_TOPIC_0000001233510109__lb89ec0263d40421ab0493f9c85165ff8"><strong id="EN-US_TOPIC_0000001233510109__a6dd18645440b43a68f9abe4d30fe30b4">partition_value</strong><p id="EN-US_TOPIC_0000001233510109__a0959fff533ab4422a1af8060e96c342d">Specifies the value of the specified partition key.</p>
<p id="EN-US_TOPIC_0000001233510109__a2271ba4fd8254d5cbe634594548d1ba9">The value specified by <strong id="EN-US_TOPIC_0000001233510109__b11013766165312">PARTITION FOR</strong> can uniquely identify a partition.</p>
<p id="EN-US_TOPIC_0000001233510109__a723c53c332b7481590d2d8d046a06190">Value range: The partition key of the partition to be deleted.</p>
<div class="notice" id="EN-US_TOPIC_0000001233510109__note37015691102218"><span class="noticetitle"><img src="public_sys-resources/notice_3.0-en-us.png"> </span><div class="noticebody"><p id="EN-US_TOPIC_0000001233510109__p22023592102218">When the <strong id="EN-US_TOPIC_0000001233510109__b06911429142711">PARTITION FOR</strong> clause is used, the entire partition where <strong id="EN-US_TOPIC_0000001233510109__b842352706164348">partition_value</strong> is located is cleared.</p>
</div></div>
</li></ul>
</div>
<div class="section" id="EN-US_TOPIC_0000001233510109__s7d61ee022bd94b699b6ea6f2b8da713b"><h4 class="sectiontitle">Examples</h4><div class="p" id="EN-US_TOPIC_0000001233510109__p3572185142311">Create a partitioned table <strong id="EN-US_TOPIC_0000001233510109__b1840124311157">customer_address</strong>:<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001233510109__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</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</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>
</div>
<p id="EN-US_TOPIC_0000001233510109__p1559354235014">Clear the <strong id="EN-US_TOPIC_0000001233510109__b41514542033626">p1</strong> partition of the <strong id="EN-US_TOPIC_0000001233510109__b63219517733626">customer_address</strong> table:</p>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001233510109__screen683792011539"><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">ALTER</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">customer_address</span><span class="w"> </span><span class="k">TRUNCATE</span><span class="w"> </span><span class="n">PARTITION</span><span class="w"> </span><span class="n">p1</span><span class="p">;</span>
</pre></div></td></tr></table></div>
</div>
<p id="EN-US_TOPIC_0000001233510109__p14593204213503">Clear a partitioned table:</p>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001233510109__screen1736922105312"><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">TRUNCATE</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">customer_address</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_0118.html">DDL Syntax</a></div>
</div>
</div>