forked from docs/doc-exports
Reviewed-by: Pruthi, Vineet <vineet.pruthi@t-systems.com> Co-authored-by: luhuayi <luhuayi@huawei.com> Co-committed-by: luhuayi <luhuayi@huawei.com>
164 lines
21 KiB
HTML
164 lines
21 KiB
HTML
<a name="EN-US_TOPIC_0000001811634577"></a><a name="EN-US_TOPIC_0000001811634577"></a>
|
|
|
|
<h1 class="topictitle1">DISCARD</h1>
|
|
<div id="body0000001353672540"><div class="section" id="EN-US_TOPIC_0000001811634577__section1491782071619"><h4 class="sectiontitle">Function</h4><p id="EN-US_TOPIC_0000001811634577__p45011627111610">Releases internal resources related to database sessions. The <strong id="EN-US_TOPIC_0000001811634577__b1342312915594">DISCARD</strong> command is used to reset the status of some or all sessions. Different <strong id="EN-US_TOPIC_0000001811634577__b194236295593">DISCARD</strong> clauses release different types of resources. The <strong id="EN-US_TOPIC_0000001811634577__b114241291594">DISCARD ALL</strong> command releases all temporary resources related to the current session and resets them to the initial state.</p>
|
|
</div>
|
|
<div class="section" id="EN-US_TOPIC_0000001811634577__section1850716461302"><h4 class="sectiontitle">Precautions</h4><p id="EN-US_TOPIC_0000001811634577__p182765501901">None</p>
|
|
</div>
|
|
<div class="section" id="EN-US_TOPIC_0000001811634577__section5494150161713"><h4 class="sectiontitle">Syntax</h4><div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001811634577__screen10647155114416"><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></pre></div></td><td class="code"><div><pre><span></span><span class="n">DISCARD</span><span class="w"> </span>
|
|
<span class="w"> </span><span class="err">{</span><span class="w"> </span><span class="k">VOLATILE</span><span class="w"> </span><span class="err">{</span><span class="w"> </span><span class="k">TEMPORARY</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">TEMP</span><span class="w"> </span><span class="err">}</span><span class="w"> </span><span class="err">}</span><span class="w"> </span><span class="o">|</span>
|
|
<span class="w"> </span><span class="err">{</span><span class="w"> </span><span class="k">ALL</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">TEMP</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="k">TEMPORARY</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">PLANS</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">SEQUENCES</span><span class="w"> </span><span class="err">}</span><span class="w"> </span><span class="err">}</span>
|
|
</pre></div></td></tr></table></div>
|
|
</div>
|
|
</div>
|
|
<div class="section" id="EN-US_TOPIC_0000001811634577__section1457616197172"><h4 class="sectiontitle">Parameter Description</h4><ul id="EN-US_TOPIC_0000001811634577__ul764516308176"><li id="EN-US_TOPIC_0000001811634577__li20645183071714"><strong id="EN-US_TOPIC_0000001811634577__b1327132220455">VOLATILE { TEMPORARY | TEMP }</strong><p id="EN-US_TOPIC_0000001811634577__p6586181451012">Releases resources related to the VOLATILE temporary table in the current session.</p>
|
|
<div class="caution" id="EN-US_TOPIC_0000001811634577__note1085720491055"><span class="cautiontitle"><img src="public_sys-resources/caution_3.0-en-us.png"> </span><div class="cautionbody"><p id="EN-US_TOPIC_0000001811634577__p585715498514">After the <strong id="EN-US_TOPIC_0000001811634577__b0834181918196">DISCARD VOLATILE { TEMPORARY | TEMP }</strong> statement is executed, all volatile temporary table resources in the current session will be cleared. However, the statement cannot clear a single volatile temporary table resource.</p>
|
|
</div></div>
|
|
</li><li id="EN-US_TOPIC_0000001811634577__li36552561289"><strong id="EN-US_TOPIC_0000001811634577__b1038071712283">GLOBAL { TEMPORARY | TEMP }</strong> <strong id="EN-US_TOPIC_0000001811634577__b94033814813">[ TABLE table_name ]</strong><ul id="EN-US_TOPIC_0000001811634577__ul1584219421366"><li id="EN-US_TOPIC_0000001811634577__li1284294215610">Run the <strong id="EN-US_TOPIC_0000001811634577__b758616328198">DISCARD GLOBAL TEMP</strong> command to release resources related to the global temporary table in the current session.</li><li id="EN-US_TOPIC_0000001811634577__li4923175014614"><strong id="EN-US_TOPIC_0000001811634577__b14728181072219">DISCARD GLOBAL TEMP TABLE table_name</strong> releases resources of a specified global temporary table in the current session.</li></ul>
|
|
<div class="caution" id="EN-US_TOPIC_0000001811634577__note139174983717"><span class="cautiontitle"><img src="public_sys-resources/caution_3.0-en-us.png"> </span><div class="cautionbody"><p id="EN-US_TOPIC_0000001811634577__p10649952153611">If a global temporary table occupies resources in a session, you need to run the <strong id="EN-US_TOPIC_0000001811634577__b1091352082210">DISCARD</strong> command to clear the resources of all sessions before performing DDL operations.</p>
|
|
</div></div>
|
|
</li><li id="EN-US_TOPIC_0000001811634577__li1058234351313"><strong id="EN-US_TOPIC_0000001811634577__b115213468710">TEMP | TEMPORARY</strong><p id="EN-US_TOPIC_0000001811634577__p515173991511">Releases resources related to all temporary tables in the current session, including volatile and global temporary tables.</p>
|
|
</li></ul>
|
|
<ul id="EN-US_TOPIC_0000001811634577__ul1157183981515"><li id="EN-US_TOPIC_0000001811634577__li515753911153"><strong id="EN-US_TOPIC_0000001811634577__b481405316711">PLANS</strong><p id="EN-US_TOPIC_0000001811634577__p191574397157">Releases all cached query plans in the current session and forces them to be replanned when related <strong id="EN-US_TOPIC_0000001811634577__b10363112842317">PREPARE</strong> statements are used next time.</p>
|
|
</li></ul>
|
|
<ul id="EN-US_TOPIC_0000001811634577__ul0457681515"><li id="EN-US_TOPIC_0000001811634577__li154416101518"><strong id="EN-US_TOPIC_0000001811634577__b55547561474">SEQUENCES</strong><p id="EN-US_TOPIC_0000001811634577__p173285810156">Discards all cached sequence-related states, including <strong id="EN-US_TOPIC_0000001811634577__b55841251142312">currval()</strong>/<strong id="EN-US_TOPIC_0000001811634577__b72111156182316">lastval()</strong> information and any pre-allocated sequence values that have not been returned through <strong id="EN-US_TOPIC_0000001811634577__b183692614243">nextval()</strong>.</p>
|
|
</li></ul>
|
|
<ul id="EN-US_TOPIC_0000001811634577__ul0341458191518"><li id="EN-US_TOPIC_0000001811634577__li2034205817159"><strong id="EN-US_TOPIC_0000001811634577__b19994165812718">ALL</strong><p id="EN-US_TOPIC_0000001811634577__p58277142167">Releases all temporary resources related to the current session and resets them to their initial state. This has almost the same effect as executing the following statement sequence:</p>
|
|
<pre class="screen" id="EN-US_TOPIC_0000001811634577__screen136152681716">SET SESSION AUTHORIZATION DEFAULT;
|
|
RESET ALL;
|
|
DEALLOCATE ALL;
|
|
CLOSE ALL;
|
|
UNLISTEN *;
|
|
SELECT pg_advisory_unlock_all();
|
|
DISCARD PLANS; DISCARD SEQUENCES;
|
|
DISCARD TEMP;</pre>
|
|
<div class="caution" id="EN-US_TOPIC_0000001811634577__note359843151811"><span class="cautiontitle"><img src="public_sys-resources/caution_3.0-en-us.png"> </span><div class="cautionbody"><ul id="EN-US_TOPIC_0000001811634577__ul8848029115014"><li id="EN-US_TOPIC_0000001811634577__li584872945018">After <strong id="EN-US_TOPIC_0000001811634577__b11982155892510">DISCARD ALL</strong> is executed successfully, schemas starting with <strong id="EN-US_TOPIC_0000001811634577__b18600184102611">pg_temp</strong> and <strong id="EN-US_TOPIC_0000001811634577__b152109142616">pg_toast_temp</strong> are also deleted.</li><li id="EN-US_TOPIC_0000001811634577__li9671847125115"><strong id="EN-US_TOPIC_0000001811634577__b16510315102612">DISCARD ALL</strong> cannot be executed in a transaction.</li></ul>
|
|
</div></div>
|
|
</li></ul>
|
|
</div>
|
|
<div class="section" id="EN-US_TOPIC_0000001811634577__section104618513171"><h4 class="sectiontitle">Examples</h4><ul id="EN-US_TOPIC_0000001811634577__ul16464544153616"><li id="EN-US_TOPIC_0000001811634577__li64651744163619">DISCARD global temporary tables<pre class="screen" id="EN-US_TOPIC_0000001811634577__screen218310572371">CREATE GLOBAL TEMP TABLE t_global_temp(a int,b int);
|
|
NOTICE: The 'DISTRIBUTE BY' clause is not specified. Using round-robin as the distribution mode by default.
|
|
HINT: Please use 'DISTRIBUTE BY' clause to specify suitable data distribution column.
|
|
CREATE TABLE
|
|
|
|
INSERT INTO t_global_temp VALUES(1,1),(2,2);
|
|
INSERT 0 2
|
|
|
|
DROP TABLE t_global_temp;
|
|
ERROR: can not DROP TABLE when global temp table "t_global_temp" is in use
|
|
|
|
DISCARD GLOBAL TEMP TABLE t_global_temp;
|
|
|
|
DROP TABLE t_global_temp;
|
|
DROP TABLE</pre>
|
|
</li></ul>
|
|
<ul id="EN-US_TOPIC_0000001811634577__ul390911203713"><li id="EN-US_TOPIC_0000001811634577__li5909218374">DISCARD VOLATILE temporary tables<p id="EN-US_TOPIC_0000001811634577__p1755913912304"><a name="EN-US_TOPIC_0000001811634577__li5909218374"></a><a name="li5909218374"></a>After the DISCARD operation is performed, all resources related to volatile temporary tables in the current session are cleared.</p>
|
|
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001811634577__screen1955953910306"><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></pre></div></td><td class="code"><div><pre><span></span><span class="k">CREATE</span><span class="w"> </span><span class="k">VOLATILE</span><span class="w"> </span><span class="n">TEMP</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">TX1</span><span class="p">(</span><span class="n">A</span><span class="w"> </span><span class="nb">INT</span><span class="p">)</span><span class="w"> </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="p">(</span><span class="n">A</span><span class="p">);</span>
|
|
<span class="k">CREATE</span><span class="w"> </span><span class="k">TABLE</span>
|
|
<span class="k">CREATE</span><span class="w"> </span><span class="k">VOLATILE</span><span class="w"> </span><span class="n">TEMP</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">TX2</span><span class="p">(</span><span class="n">A</span><span class="w"> </span><span class="nb">INT</span><span class="p">)</span><span class="w"> </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="p">(</span><span class="n">A</span><span class="p">);</span>
|
|
<span class="k">CREATE</span><span class="w"> </span><span class="k">TABLE</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">TX1</span><span class="p">;</span>
|
|
<span class="w"> </span><span class="n">a</span>
|
|
<span class="c1">---</span>
|
|
<span class="p">(</span><span class="mi">0</span><span class="w"> </span><span class="k">rows</span><span class="p">)</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">TX2</span><span class="p">;</span>
|
|
<span class="w"> </span><span class="n">a</span>
|
|
<span class="c1">---</span>
|
|
<span class="p">(</span><span class="mi">0</span><span class="w"> </span><span class="k">rows</span><span class="p">)</span>
|
|
|
|
<span class="n">DISCARD</span><span class="w"> </span><span class="k">VOLATILE</span><span class="w"> </span><span class="n">TEMP</span><span class="p">;</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">TX1</span><span class="p">;</span>
|
|
<span class="n">ERROR</span><span class="p">:</span><span class="w"> </span><span class="n">relation</span><span class="w"> </span><span class="ss">"tx1"</span><span class="w"> </span><span class="n">does</span><span class="w"> </span><span class="k">not</span><span class="w"> </span><span class="n">exist</span>
|
|
<span class="n">LINE</span><span class="w"> </span><span class="mi">1</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">TX1</span><span class="p">;</span>
|
|
<span class="w"> </span><span class="o">^</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">TX2</span><span class="p">;</span>
|
|
<span class="n">ERROR</span><span class="p">:</span><span class="w"> </span><span class="n">relation</span><span class="w"> </span><span class="ss">"tx2"</span><span class="w"> </span><span class="n">does</span><span class="w"> </span><span class="k">not</span><span class="w"> </span><span class="n">exist</span>
|
|
<span class="n">LINE</span><span class="w"> </span><span class="mi">1</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">TX2</span><span class="p">;</span>
|
|
</pre></div></td></tr></table></div>
|
|
</div>
|
|
</li><li id="EN-US_TOPIC_0000001811634577__li980493314711">DISCARD TEMP<div class="p" id="EN-US_TOPIC_0000001811634577__p412313592509"><a name="EN-US_TOPIC_0000001811634577__li980493314711"></a><a name="li980493314711"></a>After <strong id="EN-US_TOPIC_0000001811634577__b11910131715277">DISCARD TEMP</strong> is run, all temporary table resources in the current session are cleared.<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001811634577__screen18548523470"><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">GLOBAL</span><span class="w"> </span><span class="n">TEMP</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">t_global_temp</span><span class="p">(</span><span class="n">a</span><span class="w"> </span><span class="nb">int</span><span class="p">,</span><span class="n">b</span><span class="w"> </span><span class="nb">int</span><span class="p">);</span>
|
|
<span class="n">NOTICE</span><span class="p">:</span><span class="w"> </span><span class="n">The</span><span class="w"> </span><span class="s1">'DISTRIBUTE BY'</span><span class="w"> </span><span class="n">clause</span><span class="w"> </span><span class="k">is</span><span class="w"> </span><span class="k">not</span><span class="w"> </span><span class="n">specified</span><span class="p">.</span><span class="w"> </span><span class="k">Using</span><span class="w"> </span><span class="n">round</span><span class="o">-</span><span class="n">robin</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="n">the</span><span class="w"> </span><span class="n">distribution</span><span class="w"> </span><span class="k">mode</span><span class="w"> </span><span class="k">by</span><span class="w"> </span><span class="k">default</span><span class="p">.</span>
|
|
<span class="n">HINT</span><span class="p">:</span><span class="w"> </span><span class="n">Please</span><span class="w"> </span><span class="n">use</span><span class="w"> </span><span class="s1">'DISTRIBUTE BY'</span><span class="w"> </span><span class="n">clause</span><span class="w"> </span><span class="k">to</span><span class="w"> </span><span class="n">specify</span><span class="w"> </span><span class="n">suitable</span><span class="w"> </span><span class="k">data</span><span class="w"> </span><span class="n">distribution</span><span class="w"> </span><span class="k">column</span><span class="p">.</span>
|
|
<span class="k">CREATE</span><span class="w"> </span><span class="k">TABLE</span>
|
|
<span class="k">INSERT</span><span class="w"> </span><span class="k">INTO</span><span class="w"> </span><span class="n">t_global_temp</span><span class="w"> </span><span class="k">VALUES</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="mi">1</span><span class="p">),(</span><span class="mi">2</span><span class="p">,</span><span class="mi">2</span><span class="p">);</span>
|
|
<span class="k">INSERT</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="mi">2</span>
|
|
|
|
<span class="k">CREATE</span><span class="w"> </span><span class="k">VOLATILE</span><span class="w"> </span><span class="n">TEMP</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">t_volatile_temp</span><span class="p">(</span><span class="n">a</span><span class="w"> </span><span class="nb">int</span><span class="p">,</span><span class="n">b</span><span class="w"> </span><span class="nb">int</span><span class="p">);</span>
|
|
<span class="k">CREATE</span><span class="w"> </span><span class="n">TEMP</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">t_temp</span><span class="p">(</span><span class="n">a</span><span class="w"> </span><span class="nb">int</span><span class="p">,</span><span class="n">b</span><span class="w"> </span><span class="nb">int</span><span class="p">);</span>
|
|
|
|
<span class="n">DISCARD</span><span class="w"> </span><span class="n">TEMP</span><span class="p">;</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">t_global_temp</span><span class="p">;</span>
|
|
<span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">b</span>
|
|
<span class="c1">---+---</span>
|
|
<span class="p">(</span><span class="mi">0</span><span class="w"> </span><span class="k">rows</span><span class="p">)</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">t_volatile_temp</span><span class="p">;</span>
|
|
<span class="n">ERROR</span><span class="p">:</span><span class="w"> </span><span class="n">relation</span><span class="w"> </span><span class="ss">"t_volatile_temp"</span><span class="w"> </span><span class="n">does</span><span class="w"> </span><span class="k">not</span><span class="w"> </span><span class="n">exist</span>
|
|
<span class="n">LINE</span><span class="w"> </span><span class="mi">1</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">t_volatile_temp</span><span class="p">;</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">t_temp</span><span class="p">;</span>
|
|
<span class="n">ERROR</span><span class="p">:</span><span class="w"> </span><span class="n">relation</span><span class="w"> </span><span class="ss">"t_temp"</span><span class="w"> </span><span class="n">does</span><span class="w"> </span><span class="k">not</span><span class="w"> </span><span class="n">exist</span>
|
|
<span class="n">LINE</span><span class="w"> </span><span class="mi">1</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">t_temp</span><span class="p">;</span>
|
|
</pre></div></td></tr></table></div>
|
|
</div>
|
|
</div>
|
|
</li></ul>
|
|
</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>
|
|
|