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>
701 lines
145 KiB
HTML
701 lines
145 KiB
HTML
<a name="EN-US_TOPIC_0000001233510133"></a><a name="EN-US_TOPIC_0000001233510133"></a>
|
||
|
||
<h1 class="topictitle1">CREATE TABLE PARTITION</h1>
|
||
<div id="body8662426"><div class="section" id="EN-US_TOPIC_0000001233510133__section1163224811518"><h4 class="sectiontitle">Function</h4><p id="EN-US_TOPIC_0000001233510133__p10904114810261"><strong id="EN-US_TOPIC_0000001233510133__b14297133313812">CREATE TABLE PARTITION</strong> creates a partitioned table. <strong id="EN-US_TOPIC_0000001233510133__b1202343293644">Partitioned table</strong>: refers to splitting what is logically one large table into smaller physical pieces based on specific schemes. The table based on the logic is called a partitioned cable, and a physical piece is called a partition. Data is stored on these smaller physical pieces, namely, partitions, instead of the larger logical partitioned table.</p>
|
||
<p id="EN-US_TOPIC_0000001233510133__p1176134063410">Common partitioning policies include range partitioning, hash partitioning, list partitioning, and value partitioning.</p>
|
||
<p id="EN-US_TOPIC_0000001233510133__p860163815406">In range partitioning, the table is partitioned into ranges defined by a key column or set of columns, with no overlap between the ranges of values assigned to different partitions. Each range has a dedicated partition for data storage.</p>
|
||
<p id="EN-US_TOPIC_0000001233510133__p145001113195312">Range partitioning maps data to partitions based on ranges of values of the partitioning key that you establish for each partition. This is the most commonly used partitioning policy. Currently, range partitioning only allows the use of the range partitioning policy.</p>
|
||
<p id="EN-US_TOPIC_0000001233510133__p518519389508">List partitioning allocates records to partitions based on the key values in each partition. The key values do not overlap in different partitions. Create a partition for each group of key values to store corresponding data.</p>
|
||
<p id="EN-US_TOPIC_0000001233510133__p175968228536">Range partitioning policy: Data is mapped to a created partition based on the partition key value. If the data can be mapped to, it is inserted into the specific partition; if it cannot be mapped to, error messages are returned.</p>
|
||
<p id="EN-US_TOPIC_0000001233510133__p420483213544">In common partitioning policies, a data distribution range is defined based on one or more columns, and each partition carries data of a range. These columns are called partition keys.</p>
|
||
<div class="note" id="EN-US_TOPIC_0000001233510133__note852410534377"><img src="public_sys-resources/note_3.0-en-us.png"><span class="notetitle"> </span><div class="notebody"><ul id="EN-US_TOPIC_0000001233510133__ul7524853143710"><li id="EN-US_TOPIC_0000001233510133__li19524353103716">Currently, row-store tables and column-store tables support only range partitioning and list partitioning.</li><li id="EN-US_TOPIC_0000001233510133__li155244537375">List partitioning is supported only by clusters of 8.1.3 and later versions.</li></ul>
|
||
</div></div>
|
||
</div>
|
||
<div class="section" id="EN-US_TOPIC_0000001233510133__section196001357184317"><h4 class="sectiontitle">Advantages of Partitioning</h4><ul id="EN-US_TOPIC_0000001233510133__ul860055714438"><li id="EN-US_TOPIC_0000001233510133__li1147995103719">The performance of some types of queries can be greatly improved, especially when rows with high access rates in a table are located in a single partition or a few partitions. Partitioning narrows the range of data search and improves data access efficiency.</li><li id="EN-US_TOPIC_0000001233510133__li1747965203713">When queries or updates access a large percentage of a single partition, performance can be improved by taking advantage of sequential scan of that partition instead of reads scattered across the whole table.</li><li id="EN-US_TOPIC_0000001233510133__li9479957372">Bulk loads and deletion can be performed by adding or removing partitions, if that requirement is planned into the partitioning design. It also entirely avoids the <strong id="EN-US_TOPIC_0000001233510133__b130334734093644">VACUUM</strong> overhead caused by a bulk <strong id="EN-US_TOPIC_0000001233510133__b128863834193644">DELETE</strong> (only for range partitioning).</li></ul>
|
||
</div>
|
||
<div class="section" id="EN-US_TOPIC_0000001233510133__sfecc7033187843d58f6d12f0002da82a"><h4 class="sectiontitle">Precautions</h4><p id="EN-US_TOPIC_0000001233510133__a2392aadbfa7d4ed88f3e3243589564ed">A partitioned table supports unique and primary key constraints. The constraint keys of these constraints contain all partition keys.</p>
|
||
</div>
|
||
<div class="section" id="EN-US_TOPIC_0000001233510133__sbe3db6dabd9646de9b5550d539beaaf6"><h4 class="sectiontitle">Syntax</h4><div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001233510133__scb0623f6a7d743e8aa138e6f9e74016b"><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></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="p">[</span><span class="w"> </span><span class="k">IF</span><span class="w"> </span><span class="k">NOT</span><span class="w"> </span><span class="k">EXISTS</span><span class="w"> </span><span class="p">]</span><span class="w"> </span><span class="n">partition_table_name</span>
|
||
<span class="p">(</span><span class="w"> </span><span class="p">[</span><span class="w"> </span>
|
||
<span class="w"> </span><span class="err">{</span><span class="w"> </span><span class="k">column_name</span><span class="w"> </span><span class="n">data_type</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="k">COLLATE</span><span class="w"> </span><span class="k">collation</span><span class="w"> </span><span class="p">]</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="n">column_constraint</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="o">|</span><span class="w"> </span><span class="n">table_constraint</span>
|
||
<span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="k">LIKE</span><span class="w"> </span><span class="n">source_table</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="n">like_option</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="p">[,</span><span class="w"> </span><span class="p">...</span><span class="w"> </span><span class="p">]</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">WITH</span><span class="w"> </span><span class="p">(</span><span class="w"> </span><span class="err">{</span><span class="n">storage_parameter</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">value</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="p">]</span>
|
||
<span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="n">COMPRESS</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">NOCOMPRESS</span><span class="w"> </span><span class="p">]</span>
|
||
<span class="w"> </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="err">{</span><span class="w"> </span><span class="n">REPLICATION</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">ROUNDROBIN</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="err">{</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="n">HASH</span><span class="w"> </span><span class="p">]</span><span class="w"> </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="err">}</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="k">TO</span><span class="w"> </span><span class="err">{</span><span class="w"> </span><span class="k">GROUP</span><span class="w"> </span><span class="n">groupname</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">NODE</span><span class="w"> </span><span class="p">(</span><span class="w"> </span><span class="n">nodename</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="err">}</span><span class="w"> </span><span class="p">]</span>
|
||
<span class="w"> </span><span class="n">PARTITION</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="err">{</span><span class="w"> </span>
|
||
<span class="w"> </span><span class="err">{</span><span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="n">partition_key</span><span class="p">)</span><span class="err">}</span><span class="w"> </span><span class="o">|</span>
|
||
<span class="w"> </span><span class="err">{</span><span class="n">RANGE</span><span class="w"> </span><span class="p">(</span><span class="n">partition_key</span><span class="p">)</span><span class="w"> </span><span class="p">(</span><span class="w"> </span><span class="n">partition_less_than_item</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="err">}</span><span class="w"> </span><span class="o">|</span>
|
||
<span class="w"> </span><span class="err">{</span><span class="n">RANGE</span><span class="w"> </span><span class="p">(</span><span class="n">partition_key</span><span class="p">)</span><span class="w"> </span><span class="p">(</span><span class="w"> </span><span class="n">partition_start_end_item</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="err">}</span><span class="w"> </span><span class="o">|</span>
|
||
<span class="w"> </span><span class="err">{</span><span class="n">LIST</span><span class="w"> </span><span class="p">(</span><span class="n">partition_key</span><span class="p">)</span><span class="w"> </span><span class="p">(</span><span class="n">list_partition_item</span><span class="w"> </span><span class="p">[,</span><span class="w"> </span><span class="p">...])</span><span class="err">}</span>
|
||
<span class="w"> </span><span class="err">}</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="err">{</span><span class="w"> </span><span class="n">ENABLE</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">DISABLE</span><span class="w"> </span><span class="err">}</span><span class="w"> </span><span class="k">ROW</span><span class="w"> </span><span class="n">MOVEMENT</span><span class="w"> </span><span class="p">];</span><span class="w"> </span>
|
||
</pre></div></td></tr></table></div>
|
||
|
||
</div>
|
||
<ul id="EN-US_TOPIC_0000001233510133__u041d15bf946d405a9ce9fa269653ddee"><li id="EN-US_TOPIC_0000001233510133__lc330295f74d8402cab06c58018857000"><strong id="EN-US_TOPIC_0000001233510133__b096612495409">column_constraint</strong> is as follows:<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001233510133__s73e9d2ecb9114fd58495eaac544bdcb2"><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></pre></div></td><td class="code"><div><pre><span></span><span class="p">[</span><span class="w"> </span><span class="k">CONSTRAINT</span><span class="w"> </span><span class="k">constraint_name</span><span class="w"> </span><span class="p">]</span>
|
||
<span class="err">{</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="o">|</span>
|
||
<span class="w"> </span><span class="k">NULL</span><span class="w"> </span><span class="o">|</span><span class="w"> </span>
|
||
<span class="w"> </span><span class="k">CHECK</span><span class="w"> </span><span class="p">(</span><span class="w"> </span><span class="n">expression</span><span class="w"> </span><span class="p">)</span><span class="w"> </span><span class="o">|</span><span class="w"> </span>
|
||
<span class="w"> </span><span class="k">DEFAULT</span><span class="w"> </span><span class="n">default_expr</span><span class="w"> </span><span class="o">|</span><span class="w"> </span>
|
||
<span class="w"> </span><span class="k">UNIQUE</span><span class="w"> </span><span class="n">index_parameters</span><span class="w"> </span><span class="o">|</span><span class="w"> </span>
|
||
<span class="w"> </span><span class="k">PRIMARY</span><span class="w"> </span><span class="k">KEY</span><span class="w"> </span><span class="n">index_parameters</span><span class="w"> </span><span class="err">}</span>
|
||
<span class="p">[</span><span class="w"> </span><span class="k">DEFERRABLE</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="k">NOT</span><span class="w"> </span><span class="k">DEFERRABLE</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="k">INITIALLY</span><span class="w"> </span><span class="k">DEFERRED</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="k">INITIALLY</span><span class="w"> </span><span class="k">IMMEDIATE</span><span class="w"> </span><span class="p">]</span>
|
||
</pre></div></td></tr></table></div>
|
||
|
||
</div>
|
||
</li><li id="EN-US_TOPIC_0000001233510133__l305e08407cd24b2fadae0f6135126b00"><strong id="EN-US_TOPIC_0000001233510133__b147791959194016">table_constraint</strong> is as follows:<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001233510133__s0f1b35a5ff7449b992c6c57719cd16cd"><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">CONSTRAINT</span><span class="w"> </span><span class="k">constraint_name</span><span class="w"> </span><span class="p">]</span>
|
||
<span class="err">{</span><span class="w"> </span><span class="k">CHECK</span><span class="w"> </span><span class="p">(</span><span class="w"> </span><span class="n">expression</span><span class="w"> </span><span class="p">)</span><span class="w"> </span><span class="o">|</span><span class="w"> </span>
|
||
<span class="w"> </span><span class="k">UNIQUE</span><span class="w"> </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="p">)</span><span class="w"> </span><span class="n">index_parameters</span><span class="w"> </span><span class="o">|</span><span class="w"> </span>
|
||
<span class="w"> </span><span class="k">PRIMARY</span><span class="w"> </span><span class="k">KEY</span><span class="w"> </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="p">)</span><span class="w"> </span><span class="n">index_parameters</span><span class="err">}</span>
|
||
<span class="p">[</span><span class="w"> </span><span class="k">DEFERRABLE</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="k">NOT</span><span class="w"> </span><span class="k">DEFERRABLE</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="k">INITIALLY</span><span class="w"> </span><span class="k">DEFERRED</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="k">INITIALLY</span><span class="w"> </span><span class="k">IMMEDIATE</span><span class="w"> </span><span class="p">]</span>
|
||
</pre></div></td></tr></table></div>
|
||
|
||
</div>
|
||
</li></ul>
|
||
<ul id="EN-US_TOPIC_0000001233510133__u8e24af20fe7a459fa85b2d8015a9862f"><li id="EN-US_TOPIC_0000001233510133__l330b03af01414ea38e4fd31c2e5dbdf3"><strong id="EN-US_TOPIC_0000001233510133__b143191217134111">like_option</strong> is as follows:<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001233510133__s048fdbc088d24c0f8105091118933c3c"><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="err">{</span><span class="w"> </span><span class="k">INCLUDING</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="k">EXCLUDING</span><span class="w"> </span><span class="err">}</span><span class="w"> </span><span class="err">{</span><span class="w"> </span><span class="k">DEFAULTS</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="k">CONSTRAINTS</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">INDEXES</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="k">STORAGE</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">COMMENTS</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">RELOPTIONS</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">DISTRIBUTION</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="k">ALL</span><span class="w"> </span><span class="err">}</span>
|
||
</pre></div></td></tr></table></div>
|
||
|
||
</div>
|
||
</li></ul>
|
||
<ul id="EN-US_TOPIC_0000001233510133__u0aa50f06e28b4ff0862ac7830afec957"><li id="EN-US_TOPIC_0000001233510133__l29c8f05c933c46f9bed5eda5b7894f02"><strong id="EN-US_TOPIC_0000001233510133__b1234992919412">index_parameters</strong> is as follows:<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001233510133__s62d8ee01070f4ec5bac73e5103ad2b3e"><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="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="err">{</span><span class="n">storage_parameter</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">value</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="p">]</span>
|
||
</pre></div></td></tr></table></div>
|
||
|
||
</div>
|
||
</li></ul>
|
||
</div>
|
||
<ul id="EN-US_TOPIC_0000001233510133__ul44771433537"><li id="EN-US_TOPIC_0000001233510133__li1147714355320"><a name="EN-US_TOPIC_0000001233510133__li1147714355320"></a><a name="li1147714355320"></a><strong id="EN-US_TOPIC_0000001233510133__b1270974884112">partition_less_than_item</strong> is as follows:<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001233510133__screen176771922155511"><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="n">PARTITION</span><span class="w"> </span><span class="n">partition_name</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="w"> </span><span class="p">(</span><span class="w"> </span><span class="err">{</span><span class="w"> </span><span class="n">partition_value</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="k">MAXVALUE</span><span class="w"> </span><span class="err">}</span><span class="w"> </span><span class="p">)</span>
|
||
</pre></div></td></tr></table></div>
|
||
|
||
</div>
|
||
</li><li id="EN-US_TOPIC_0000001233510133__li141301913105411"><strong id="EN-US_TOPIC_0000001233510133__b1252554124115">partition_start_end_item</strong> is as follows:<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001233510133__screen32911276569"><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="n">PARTITION</span><span class="w"> </span><span class="n">partition_name</span><span class="w"> </span><span class="err">{</span>
|
||
<span class="w"> </span><span class="err">{</span><span class="k">START</span><span class="p">(</span><span class="n">partition_value</span><span class="p">)</span><span class="w"> </span><span class="k">END</span><span class="w"> </span><span class="p">(</span><span class="n">partition_value</span><span class="p">)</span><span class="w"> </span><span class="k">EVERY</span><span class="w"> </span><span class="p">(</span><span class="n">interval_value</span><span class="p">)</span><span class="err">}</span><span class="w"> </span><span class="o">|</span>
|
||
<span class="w"> </span><span class="err">{</span><span class="k">START</span><span class="p">(</span><span class="n">partition_value</span><span class="p">)</span><span class="w"> </span><span class="k">END</span><span class="w"> </span><span class="p">(</span><span class="err">{</span><span class="n">partition_value</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="k">MAXVALUE</span><span class="err">}</span><span class="p">)</span><span class="err">}</span><span class="w"> </span><span class="o">|</span>
|
||
<span class="w"> </span><span class="err">{</span><span class="k">START</span><span class="p">(</span><span class="n">partition_value</span><span class="p">)</span><span class="err">}</span><span class="w"> </span><span class="o">|</span>
|
||
<span class="w"> </span><span class="err">{</span><span class="k">END</span><span class="p">(</span><span class="err">{</span><span class="n">partition_value</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="k">MAXVALUE</span><span class="err">}</span><span class="p">)</span><span class="err">}</span>
|
||
<span class="err">}</span>
|
||
</pre></div></td></tr></table></div>
|
||
|
||
</div>
|
||
</li></ul>
|
||
<ul id="EN-US_TOPIC_0000001233510133__ul42842572914"><li id="EN-US_TOPIC_0000001233510133__li135021622911"><a name="EN-US_TOPIC_0000001233510133__li135021622911"></a><a name="li135021622911"></a>list_partition_item:<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001233510133__screen9502106182913"><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="n">PARTITION</span><span class="w"> </span><span class="n">partition_name</span><span class="w"> </span><span class="k">VALUES</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="n">partition_value</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="k">DEFAULT</span><span class="w"> </span><span class="err">}</span><span class="w"> </span><span class="p">)</span>
|
||
</pre></div></td></tr></table></div>
|
||
|
||
</div>
|
||
</li></ul>
|
||
<div class="section" id="EN-US_TOPIC_0000001233510133__sf87fc97db0664b2ab9ee9b85e334871f"><h4 class="sectiontitle">Parameter Description</h4><ul id="EN-US_TOPIC_0000001233510133__uf44688cfdccd4b288667f2db3af59b4e"><li id="EN-US_TOPIC_0000001233510133__ldd6a7e944b3246f88bc3678ff0aa11b8"><strong id="EN-US_TOPIC_0000001233510133__ab503d69d59234cbf899df9ba9ddc8eed">IF NOT EXISTS</strong><p id="EN-US_TOPIC_0000001233510133__a5731bac911db44a88d3664e71384c4e8">Does not throw an error if a table with the same name exists. A notice is issued in this case.</p>
|
||
</li><li id="EN-US_TOPIC_0000001233510133__l99d4ee3649bc4310b894aa3a65003f39"><strong id="EN-US_TOPIC_0000001233510133__a7022bc974d854b3499dfaf952af480ae">partition_table_name</strong><p id="EN-US_TOPIC_0000001233510133__a5180626fc48140daa481f28fe59a99dd">Name of the partitioned table</p>
|
||
<p id="EN-US_TOPIC_0000001233510133__accbc53e336ce4b198a2703785c6e8a25">Value range: a string. It must comply with the naming convention.</p>
|
||
</li><li id="EN-US_TOPIC_0000001233510133__l770fbbe4170c43c68b5fc41deef3dd87"><strong id="EN-US_TOPIC_0000001233510133__a50aeeac752c04615964f8e9bc2151967">column_name</strong><p id="EN-US_TOPIC_0000001233510133__aceae0736d53f4113a1baf1782bd7c730">Specifies the name of a column to be created in the new table.</p>
|
||
<p id="EN-US_TOPIC_0000001233510133__a26c800c552f0402d8a066595fdc288f1">Value range: a string. It must comply with the naming convention.</p>
|
||
</li><li id="EN-US_TOPIC_0000001233510133__l35f40e56461545758dace29c9c70d3b1"><strong id="EN-US_TOPIC_0000001233510133__a6613a5da43824323974b74fdc16515d1">data_type</strong><p id="EN-US_TOPIC_0000001233510133__a0c625b49c1e247d1af6d26ffd5c97910">Specifies the data type of the column.</p>
|
||
</li><li id="EN-US_TOPIC_0000001233510133__lf792484a8cff460fab36a1835500028a"><strong id="EN-US_TOPIC_0000001233510133__a06e15096305247bdb8994a6b7207c91c">COLLATE collation</strong><p id="EN-US_TOPIC_0000001233510133__a6b519823d6e840d28d9b52b5718e5e43">Assigns a collation to the column (which must be of a collatable data type). If no collation is specified, the default collation is used.</p>
|
||
<p id="EN-US_TOPIC_0000001233510133__p588042710362">The collatable types are char, varchar, text, nchar, and nvarchar.</p>
|
||
</li><li id="EN-US_TOPIC_0000001233510133__lbba701ce399b4800b90674c9228deaf3"><strong id="EN-US_TOPIC_0000001233510133__a33ce2813f56f45e8ad8a360d718bc741">CONSTRAINT constraint_name</strong><p id="EN-US_TOPIC_0000001233510133__a148d7bf678b44308b0f97cdf54a2ae36">Specifies a name for a column or table constraint. The optional constraint clauses specify constraints that new or updated rows must satisfy for an insert or update operation to succeed.</p>
|
||
<p id="EN-US_TOPIC_0000001233510133__aaf6eb40d4c8e494395f23a71b71a739d">There are two ways to define constraints:</p>
|
||
<ul id="EN-US_TOPIC_0000001233510133__u3564faf231524c6f8d7dcd6182a86c39"><li id="EN-US_TOPIC_0000001233510133__l7455b5a21def45da86128a292d3101c1">A column constraint is defined as part of a column definition, and it is bound to a particular column.</li><li id="EN-US_TOPIC_0000001233510133__l2612c6bc2bbb40dd843059bc45f67481">A table constraint is not bound to any particular columns but can apply to more than one column.</li></ul>
|
||
</li><li id="EN-US_TOPIC_0000001233510133__l1744674312974babb8b62d66a13075ea"><strong id="EN-US_TOPIC_0000001233510133__a2f037699513a49419ffb4a7fda92d67b">LIKE source_table [ like_option ... ]</strong><p id="EN-US_TOPIC_0000001233510133__a29e935d51f6b4ceeb4941a687034f095">Specifies a table from which the new table automatically copies all column names, their data types, and their not-null constraints.</p>
|
||
<p id="EN-US_TOPIC_0000001233510133__a75c76619fc2043c1a254f13154daf99d">Unlike <strong id="EN-US_TOPIC_0000001233510133__b1237811296517">INHERITS</strong>, the new table and original table are decoupled after creation is complete. Changes to the original table will not be applied to the new table, and it is not possible to include data of the new table in scans of the original table.</p>
|
||
<p id="EN-US_TOPIC_0000001233510133__a3c55e60b80e849409dee5cb360a78e88">Default expressions for the copied column definitions will only be copied if <strong id="EN-US_TOPIC_0000001233510133__b1695271783">INCLUDING DEFAULTS</strong> is specified. The default behavior is to exclude default expressions, resulting in the copied columns in the new table having default values <strong id="EN-US_TOPIC_0000001233510133__b15257491783">NULL</strong>.</p>
|
||
<p id="EN-US_TOPIC_0000001233510133__a7c430b73026347d18986bf00dd438e4f"><strong id="EN-US_TOPIC_0000001233510133__b11854163973019">NOT NULL</strong> constraints are always copied to the new table. <strong id="EN-US_TOPIC_0000001233510133__b842352706165324">CHECK</strong> constraints will only be copied if <strong id="EN-US_TOPIC_0000001233510133__b842352706165329">INCLUDING CONSTRAINTS</strong> is specified; other types of constraints will never be copied. These rules also apply to column constraints and table constraints.</p>
|
||
<p id="EN-US_TOPIC_0000001233510133__a20cc85a5c7aa4035b317188e3dd0da61">Columns and constraints copied by <strong id="EN-US_TOPIC_0000001233510133__b823217321759">LIKE</strong> are not merged with the same name. If the same name is specified explicitly or in another <strong id="EN-US_TOPIC_0000001233510133__b617509951783">LIKE</strong> clause, an error is reported.</p>
|
||
<ul id="EN-US_TOPIC_0000001233510133__u21adfcc54c3a4d54825848208df25d69"><li id="EN-US_TOPIC_0000001233510133__lb04bea1702a845e8b60fbae870edf427">Any indexes on the source table will not be created on the new table, unless the <strong id="EN-US_TOPIC_0000001233510133__en-us_topic_0058965796_b84235270611020">INCLUDING INDEXES</strong> clause is specified.</li><li id="EN-US_TOPIC_0000001233510133__la94bab2532da4250a0210737555be237"><strong id="EN-US_TOPIC_0000001233510133__b143881842134813">STORAGE</strong> settings for the copied column definitions will only be copied if <strong id="EN-US_TOPIC_0000001233510133__b84235270611028">INCLUDING STORAGE</strong> is specified. The default behavior is to exclude <strong id="EN-US_TOPIC_0000001233510133__b84235270611036">STORAGE</strong> settings.</li><li id="EN-US_TOPIC_0000001233510133__l16bcf17870bf4d0780819f9e510dd97a">Comments for the copied columns, constraints, and indexes will only be copied if <strong id="EN-US_TOPIC_0000001233510133__b84235270611044">INCLUDING COMMENTS</strong> is specified. The default behavior is to exclude comments.</li><li id="EN-US_TOPIC_0000001233510133__l2ecb53212e584e0782ef6fb7b85f2e1d">If <strong id="EN-US_TOPIC_0000001233510133__b84235270611052">INCLUDING RELOPTIONS</strong> is specified, the new table will copy the storage parameter (<strong id="EN-US_TOPIC_0000001233510133__b8423527061111">WITH</strong> clause of the source table) of the source table. The default behavior is to exclude partition definition of the storage parameter of the source table.</li><li id="EN-US_TOPIC_0000001233510133__l5eeef40ef89245108aaed40e11006237">If <strong id="EN-US_TOPIC_0000001233510133__b8423527061116">INCLUDING DISTRIBUTION</strong> is specified, the new table will copy the distribution information of the source table, including distribution type and column, and the new table cannot use <strong id="EN-US_TOPIC_0000001233510133__b84235270611111">DISTRIBUTE BY</strong> clause. The default behavior is to exclude distribution information of the source table.</li><li id="EN-US_TOPIC_0000001233510133__le8ff70e1a8034c88afa706e9e35d887b"><strong id="EN-US_TOPIC_0000001233510133__b84235270611126">INCLUDING ALL</strong> is an abbreviated form of <strong id="EN-US_TOPIC_0000001233510133__b84235270611136">INCLUDING DEFAULTS INCLUDING CONSTRAINTS INCLUDING INDEXES INCLUDING STORAGE INCLUDING COMMENTS INCLUDING RELOPTIONS INCLUDING DISTRIBUTION.</strong></li></ul>
|
||
</li><li id="EN-US_TOPIC_0000001233510133__lae968f3c5791463494f3587601daebe7"><strong id="EN-US_TOPIC_0000001233510133__a41ab1be34f5c45c084f5e70712036c1c">WITH ( storage_parameter [= value] [, ... ] )</strong><p id="EN-US_TOPIC_0000001233510133__a11ce7ad3cfc044e58ed083870faa877e">Specifies an optional storage parameter for a table or an index. Optional parameters are as follows:</p>
|
||
<ul id="EN-US_TOPIC_0000001233510133__u7a2158ee32d44f6c9d5bc0ca883379ba"><li id="EN-US_TOPIC_0000001233510133__l0154a80909ef409e8b89306072ac66b0">FILLFACTOR<p id="EN-US_TOPIC_0000001233510133__a5ce0879c5828420bab78d20cb08f3bae"><a name="EN-US_TOPIC_0000001233510133__l0154a80909ef409e8b89306072ac66b0"></a><a name="l0154a80909ef409e8b89306072ac66b0"></a>The fillfactor of a table is a percentage between 10 and 100. 100 (complete packing) is the default value. When a smaller fillfactor is specified, <strong id="EN-US_TOPIC_0000001233510133__b2270294916957">INSERT</strong> operations pack table pages only to the indicated percentage. The remaining space on each page is reserved for updating rows on that page. This gives <strong id="EN-US_TOPIC_0000001233510133__b9235230142311">UPDATE</strong> a chance to place the updated copy of a row on the same page, which is more efficient than placing it on a different page. For a table whose records are never updated, setting the fillfactor to 100 (complete packing) is the appropriate choice, but in heavily updated tables smaller fillfactors are appropriate. The parameter has no meaning for column-store tables.</p>
|
||
<p id="EN-US_TOPIC_0000001233510133__a29b065e24bbc4d62b40255adfdcdcd80">Value range: 10–100</p>
|
||
</li><li id="EN-US_TOPIC_0000001233510133__l1dc186de08f04179abf5445132a99745">ORIENTATION<p id="EN-US_TOPIC_0000001233510133__a009ee5e011a34c62a041c639c0a83842"><a name="EN-US_TOPIC_0000001233510133__l1dc186de08f04179abf5445132a99745"></a><a name="l1dc186de08f04179abf5445132a99745"></a>Determines the storage mode of the data in the table.</p>
|
||
<p id="EN-US_TOPIC_0000001233510133__a71c6b6ed51ea41feaad0aba3c1d9eb42">Valid value:</p>
|
||
<ul id="EN-US_TOPIC_0000001233510133__ub10e0c25753d4fd8a0c8393b294114be"><li id="EN-US_TOPIC_0000001233510133__l73a7b9c8897a4abca15713d8a09a1db9"><strong id="EN-US_TOPIC_0000001233510133__b842352706112126">COLUMN</strong>: The data will be stored in columns.</li><li id="EN-US_TOPIC_0000001233510133__l1bd37cd0368c4450bab41a0e1bed0029"><strong id="EN-US_TOPIC_0000001233510133__b842352706112130">ROW</strong> (default value): The data will be stored in rows.</li><li id="EN-US_TOPIC_0000001233510133__l4d1ed040d60a4d58a91802c0ce97fa69"><strong id="EN-US_TOPIC_0000001233510133__en-us_topic_0058965796_b842352706102754">ORC</strong>: The data of the table will be stored in ORC format (only HDFS table).<div class="notice" id="EN-US_TOPIC_0000001233510133__nf8b15ae6979a49b3a5969fbe6dd2bb79"><span class="noticetitle"><img src="public_sys-resources/notice_3.0-en-us.png"> </span><div class="noticebody"><p id="EN-US_TOPIC_0000001233510133__ad51295bc4ac845d4909cb672c96b9033"><strong id="EN-US_TOPIC_0000001233510133__en-us_topic_0058965792_b8423527069143">orientation</strong> cannot be modified.</p>
|
||
</div></div>
|
||
</li></ul>
|
||
</li><li id="EN-US_TOPIC_0000001233510133__le08cbebf64a646119ad1ff794400628f">COMPRESSION<div class="p" id="EN-US_TOPIC_0000001233510133__p1831519142713"><a name="EN-US_TOPIC_0000001233510133__le08cbebf64a646119ad1ff794400628f"></a><a name="le08cbebf64a646119ad1ff794400628f"></a>The valid values for column-store tables are <strong id="EN-US_TOPIC_0000001233510133__b123671040131416">YES</strong>/<strong id="EN-US_TOPIC_0000001233510133__b103671140161410">NO</strong> and <strong id="EN-US_TOPIC_0000001233510133__b636724020145">LOW</strong>/<strong id="EN-US_TOPIC_0000001233510133__b1036734051415">MIDDLE</strong>/<strong id="EN-US_TOPIC_0000001233510133__b1336854014141">HIGH</strong>, and the default is <strong id="EN-US_TOPIC_0000001233510133__b1336844021412">LOW</strong>.<div class="note" id="EN-US_TOPIC_0000001233510133__note141418320435"><img src="public_sys-resources/note_3.0-en-us.png"><span class="notetitle"> </span><div class="notebody"><p id="EN-US_TOPIC_0000001233510133__p2535793713">Currently, row-store table compression is not supported.</p>
|
||
</div></div>
|
||
</div>
|
||
</li><li id="EN-US_TOPIC_0000001233510133__ld6c4939c3ecd43408f4acb40d9261606">MAX_BATCHROW<p id="EN-US_TOPIC_0000001233510133__a823b7c5dd5d445e38e7b76b4d6ec2277"><a name="EN-US_TOPIC_0000001233510133__ld6c4939c3ecd43408f4acb40d9261606"></a><a name="ld6c4939c3ecd43408f4acb40d9261606"></a>Specifies the maximum of a storage unit during data loading process. The parameter is only valid for column-store tables.</p>
|
||
<p id="EN-US_TOPIC_0000001233510133__p99985347569">Value range: 10000 to 60000</p>
|
||
<p id="EN-US_TOPIC_0000001233510133__a72beb3576bd246d589b82401b02bb75b">Default value: <strong id="EN-US_TOPIC_0000001233510133__b234929365105912">60000</strong></p>
|
||
</li><li id="EN-US_TOPIC_0000001233510133__lb2b8ac6177cc4068ac0aa63ba0751f3e">PARTIAL_CLUSTER_ROWS<p id="EN-US_TOPIC_0000001233510133__a6ec572bacf034ef9820afaf4b2271185"><a name="EN-US_TOPIC_0000001233510133__lb2b8ac6177cc4068ac0aa63ba0751f3e"></a><a name="lb2b8ac6177cc4068ac0aa63ba0751f3e"></a>Specifies the number of records to be partial cluster stored during data loading process. The parameter is only valid for column-store tables.</p>
|
||
<p id="EN-US_TOPIC_0000001233510133__a239d3bb8cc1a44b897f9aa1cc4c1a85c">Value range: The valid value is no less than 100000. The value is the multiple of <strong id="EN-US_TOPIC_0000001233510133__b842352706105743">MAX_BATCHROW</strong>.</p>
|
||
</li><li id="EN-US_TOPIC_0000001233510133__li2613194271216">enable_delta<p id="EN-US_TOPIC_0000001233510133__p1761394219122"><a name="EN-US_TOPIC_0000001233510133__li2613194271216"></a><a name="li2613194271216"></a>Specifies whether to enable delta tables in column-store tables. The parameter is only valid for column-store tables.</p>
|
||
<p id="EN-US_TOPIC_0000001233510133__p561354210126">Default value: <strong id="EN-US_TOPIC_0000001233510133__b8361559118">off</strong></p>
|
||
</li><li id="EN-US_TOPIC_0000001233510133__lb38fdf1afbf84910a7ec89d3d9ec225c">DELTAROW_THRESHOLD<p id="EN-US_TOPIC_0000001233510133__a586b94005ef54a52b9e1dc931b6e2122"><a name="EN-US_TOPIC_0000001233510133__lb38fdf1afbf84910a7ec89d3d9ec225c"></a><a name="lb38fdf1afbf84910a7ec89d3d9ec225c"></a>A reserved parameter. The parameter is only valid for column-store tables.</p>
|
||
<p id="EN-US_TOPIC_0000001233510133__a12f23c3ab168479898f1da1979b472c1">The value ranges from <strong id="EN-US_TOPIC_0000001233510133__b1676316442014">0</strong> to <strong id="EN-US_TOPIC_0000001233510133__b27631549208">60000</strong>. The default value is <strong id="EN-US_TOPIC_0000001233510133__b177631448205">6000</strong>.</p>
|
||
</li><li id="EN-US_TOPIC_0000001233510133__li5770191514236">COLD_TABLESPACE<p id="EN-US_TOPIC_0000001233510133__p275481721516"><a name="EN-US_TOPIC_0000001233510133__li5770191514236"></a><a name="li5770191514236"></a>Specifies the OBS tablespace for the cold partitions in a multi-temperature table. This parameter is available only to partitioned column-store tables and cannot be modified. It must be used together with <strong id="EN-US_TOPIC_0000001233510133__b1447271816163">storage_policy</strong>. The parameter <strong id="EN-US_TOPIC_0000001233510133__b11696101961614">STORAGE_POLICY</strong> can be left unconfigured. In this case, the default value <strong id="EN-US_TOPIC_0000001233510133__b369691915165">default_obs_tbs</strong> is used.</p>
|
||
<p id="EN-US_TOPIC_0000001233510133__p17754171718155">Valid value: a valid OBS tablespace name</p>
|
||
</li><li id="EN-US_TOPIC_0000001233510133__li936123724019">STORAGE_POLICY<p id="EN-US_TOPIC_0000001233510133__p10361637104010"><a name="EN-US_TOPIC_0000001233510133__li936123724019"></a><a name="li936123724019"></a>Specifies the rule for switching between hot and cold partitions. This parameter is used only for multi-temperature tables. It must be used together with <strong id="EN-US_TOPIC_0000001233510133__b141014242167">cold_tablespace</strong>.</p>
|
||
<p id="EN-US_TOPIC_0000001233510133__p1536111379404">Value range: <em id="EN-US_TOPIC_0000001233510133__i1872315358499">Cold and hot switchover policy name</em>:<em id="EN-US_TOPIC_0000001233510133__i1472483544914">Cold and hot switchover threshold</em>. Currently, only LMT and HPN policies are supported. LMT indicates that the switchover is performed based on the last update time of partitions. HPN indicates the switchover is performed based on a fixed number of reserved hot partitions.</p>
|
||
<ul id="EN-US_TOPIC_0000001233510133__ul1436163718408"><li id="EN-US_TOPIC_0000001233510133__li236213373405"><strong id="EN-US_TOPIC_0000001233510133__b12564838184910">LMT:[</strong><em id="EN-US_TOPIC_0000001233510133__i175641938154912">day</em><strong id="EN-US_TOPIC_0000001233510133__b556453815499">]</strong>: Switch the hot partition data that is not updated in the last <em id="EN-US_TOPIC_0000001233510133__i6564638104915">[day]</em> days to the OBS tablespace as cold partition data. <em id="EN-US_TOPIC_0000001233510133__i15475194004910">[day]</em> is an integer ranging from 0 to 36500, in days.</li><li id="EN-US_TOPIC_0000001233510133__li10362133717406"><strong id="EN-US_TOPIC_0000001233510133__b10133104234911">HPN:[</strong><em id="EN-US_TOPIC_0000001233510133__i17134194217497">hot_partition_num</em><strong id="EN-US_TOPIC_0000001233510133__b1134114224914">]</strong>: [<em id="EN-US_TOPIC_0000001233510133__i1613416423497">hot_partition_num</em>] indicates the number of hot partitions (with data) to be retained. The rule is to find the maximum sequence ID of the partitions with data. The partitions without data whose sequence ID is greater than the maximum sequence ID are hot partitions, and [<em id="EN-US_TOPIC_0000001233510133__i199500447498">hot_partition_num</em>] partitions are retained as hot partitions in descending order according to the sequence ID. A partition whose sequence ID is smaller than the minimum sequence ID of the retained hot partition is a cold partition. During hot and cold partition switchover, data needs to be migrated to the OBS tablespace. <em id="EN-US_TOPIC_0000001233510133__i6187711111814">[hot_partition_num]</em> is an integer ranging from 0 to 1600.<div class="notice" id="EN-US_TOPIC_0000001233510133__note3773544502"><span class="noticetitle"><img src="public_sys-resources/notice_3.0-en-us.png"> </span><div class="noticebody"><ul id="EN-US_TOPIC_0000001233510133__ul1390814284513"><li id="EN-US_TOPIC_0000001233510133__li18882111715487">The hybrid data warehouse (standalone) does not support cold and hot partition switchover.</li><li id="EN-US_TOPIC_0000001233510133__li16582628104315">For a LIST partition, you are advised to use the HPN policy with caution. Otherwise, the new partition may not be a hot partition.</li></ul>
|
||
</div></div>
|
||
</li></ul>
|
||
</li><li id="EN-US_TOPIC_0000001233510133__li672910401685"><a name="EN-US_TOPIC_0000001233510133__li672910401685"></a><a name="li672910401685"></a>PERIOD<p id="EN-US_TOPIC_0000001233510133__p1280155318915"><a name="EN-US_TOPIC_0000001233510133__li672910401685"></a><a name="li672910401685"></a>Specifies the period of automatically creating partitions and enables the automatic partition creation function. Only row-store and column-store range partitioned tables, time series tables, and cold and hot tables are supported. The partition key must be unique and its type can only be TIMESTAMP[(p)] [WITHOUT TIME ZONE], TIMESTAMP[(p)] [WITH TIME ZONE] or DATE. maxvalue partitions are not supported. The value of <strong id="EN-US_TOPIC_0000001233510133__b1366255162212">(nowTime - boundaryTime)/PERIOD</strong> must be less than the upper limit of the number of partitions, where <strong id="EN-US_TOPIC_0000001233510133__b07912582210">nowTime</strong> indicates the current time and <strong id="EN-US_TOPIC_0000001233510133__b16185639112215">boundaryTime</strong> indicates the earliest partition boundary time. It cannot be used on midrange computers, acceleration clusters, or single-node clusters.</p>
|
||
<p id="EN-US_TOPIC_0000001233510133__p661515531017">Value range: 1 hour ~ 100 years</p>
|
||
<div class="notice" id="EN-US_TOPIC_0000001233510133__note163891632192815"><span class="noticetitle"><img src="public_sys-resources/notice_3.0-en-us.png"> </span><div class="noticebody"><ul id="EN-US_TOPIC_0000001233510133__ul189088343468"><li id="EN-US_TOPIC_0000001233510133__li1490883484612">In a database compatible with Teradata or MySQL, if the partition key type is <strong id="EN-US_TOPIC_0000001233510133__b165351482510479">DATE</strong>, <strong id="EN-US_TOPIC_0000001233510133__b190122783210479">PERIOD</strong> cannot be less than 1 day.</li><li id="EN-US_TOPIC_0000001233510133__li1174560466">If PERIOD is set when a partitioned table is created, you can specify only the partition key. Two default partitions are created during table creation. The time ranges of the two default partitions are both PERIOD. The boundary time of the first default partition is the first hour, day, week, month, or year past the current time. The time unit is selected based on the maximum unit of PERIOD. The boundary time of the second default partition is the boundary time of the first partition plus PERIOD. Assume that the current time is 2022-02-17 16:32:45, and the boundary of the first default partition is described in <a href="#EN-US_TOPIC_0000001233510133__table9164621194711">Table 1</a>.<p id="EN-US_TOPIC_0000001233510133__p7951125164817">For more information about the default partitions, see <a href="#EN-US_TOPIC_0000001233510133__li9517101103811">Example 5</a>.</p>
|
||
</li><li id="EN-US_TOPIC_0000001233510133__li31171138114614">The hybrid data warehouse (standalone) does not support automatic partition creation.</li></ul>
|
||
</div></div>
|
||
|
||
<div class="tablenoborder"><a name="EN-US_TOPIC_0000001233510133__table9164621194711"></a><a name="table9164621194711"></a><table cellpadding="4" cellspacing="0" summary="" id="EN-US_TOPIC_0000001233510133__table9164621194711" frame="border" border="1" rules="all"><caption><b>Table 1 </b>Partition boundaries</caption><thead align="left"><tr id="EN-US_TOPIC_0000001233510133__row61651321204710"><th align="center" class="cellrowborder" valign="top" width="33.33333333333333%" id="mcps1.3.7.2.8.3.10.4.2.4.1.1"><p id="EN-US_TOPIC_0000001233510133__p516514213476">period</p>
|
||
</th>
|
||
<th align="center" class="cellrowborder" valign="top" width="33.33333333333333%" id="mcps1.3.7.2.8.3.10.4.2.4.1.2"><p id="EN-US_TOPIC_0000001233510133__p1165142114477">Maximum PERIOD Unit</p>
|
||
</th>
|
||
<th align="center" class="cellrowborder" valign="top" width="33.33333333333333%" id="mcps1.3.7.2.8.3.10.4.2.4.1.3"><p id="EN-US_TOPIC_0000001233510133__p8165921134711">Boundary of First Default Partition</p>
|
||
</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody><tr id="EN-US_TOPIC_0000001233510133__row1216542110474"><td class="cellrowborder" align="center" valign="top" width="33.33333333333333%" headers="mcps1.3.7.2.8.3.10.4.2.4.1.1 "><p id="EN-US_TOPIC_0000001233510133__p216514213476">1hour</p>
|
||
</td>
|
||
<td class="cellrowborder" align="center" valign="top" width="33.33333333333333%" headers="mcps1.3.7.2.8.3.10.4.2.4.1.2 "><p id="EN-US_TOPIC_0000001233510133__p1216592119475">Hour</p>
|
||
</td>
|
||
<td class="cellrowborder" align="center" valign="top" width="33.33333333333333%" headers="mcps1.3.7.2.8.3.10.4.2.4.1.3 "><p id="EN-US_TOPIC_0000001233510133__p5165142111475">2022-02-17 17:00:00</p>
|
||
</td>
|
||
</tr>
|
||
<tr id="EN-US_TOPIC_0000001233510133__row1116542144718"><td class="cellrowborder" align="center" valign="top" width="33.33333333333333%" headers="mcps1.3.7.2.8.3.10.4.2.4.1.1 "><p id="EN-US_TOPIC_0000001233510133__p1016613213472">1day</p>
|
||
</td>
|
||
<td class="cellrowborder" align="center" valign="top" width="33.33333333333333%" headers="mcps1.3.7.2.8.3.10.4.2.4.1.2 "><p id="EN-US_TOPIC_0000001233510133__p71668212477">Day</p>
|
||
</td>
|
||
<td class="cellrowborder" align="center" valign="top" width="33.33333333333333%" headers="mcps1.3.7.2.8.3.10.4.2.4.1.3 "><p id="EN-US_TOPIC_0000001233510133__p016642164711">2022-02-18 00:00:00</p>
|
||
</td>
|
||
</tr>
|
||
<tr id="EN-US_TOPIC_0000001233510133__row19166921124715"><td class="cellrowborder" align="center" valign="top" width="33.33333333333333%" headers="mcps1.3.7.2.8.3.10.4.2.4.1.1 "><p id="EN-US_TOPIC_0000001233510133__p181661221114714">1month</p>
|
||
</td>
|
||
<td class="cellrowborder" align="center" valign="top" width="33.33333333333333%" headers="mcps1.3.7.2.8.3.10.4.2.4.1.2 "><p id="EN-US_TOPIC_0000001233510133__p15166521204714">Month</p>
|
||
</td>
|
||
<td class="cellrowborder" align="center" valign="top" width="33.33333333333333%" headers="mcps1.3.7.2.8.3.10.4.2.4.1.3 "><p id="EN-US_TOPIC_0000001233510133__p121662216476">2022-03-01 00:00:00</p>
|
||
</td>
|
||
</tr>
|
||
<tr id="EN-US_TOPIC_0000001233510133__row1516619214470"><td class="cellrowborder" align="center" valign="top" width="33.33333333333333%" headers="mcps1.3.7.2.8.3.10.4.2.4.1.1 "><p id="EN-US_TOPIC_0000001233510133__p1916682116472">13month</p>
|
||
</td>
|
||
<td class="cellrowborder" align="center" valign="top" width="33.33333333333333%" headers="mcps1.3.7.2.8.3.10.4.2.4.1.2 "><p id="EN-US_TOPIC_0000001233510133__p7166162134715">Year</p>
|
||
</td>
|
||
<td class="cellrowborder" align="center" valign="top" width="33.33333333333333%" headers="mcps1.3.7.2.8.3.10.4.2.4.1.3 "><p id="EN-US_TOPIC_0000001233510133__p131661421104720">2023-01-01 00:00:00</p>
|
||
</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
</li><li id="EN-US_TOPIC_0000001233510133__li49277207810"><a name="EN-US_TOPIC_0000001233510133__li49277207810"></a><a name="li49277207810"></a>TTL<p id="EN-US_TOPIC_0000001233510133__p16203125014106"><a name="EN-US_TOPIC_0000001233510133__li49277207810"></a><a name="li49277207810"></a>Specifies the partition expiration time in partition management and enables the automatic partition deletion function. This parameter cannot be set separately. You must set <strong id="EN-US_TOPIC_0000001233510133__b165111014250">PERIOD</strong> in advance or at the same time. The value of this parameter must be greater than or equal to that of <strong id="EN-US_TOPIC_0000001233510133__b12154203522517">PERIOD</strong>.</p>
|
||
<p id="EN-US_TOPIC_0000001233510133__p920365021011">Value range: 1 hour ~ 100 years</p>
|
||
<div class="note" id="EN-US_TOPIC_0000001233510133__note3858121110"><img src="public_sys-resources/note_3.0-en-us.png"><span class="notetitle"> </span><div class="notebody"><ul id="EN-US_TOPIC_0000001233510133__ul6264623193310"><li id="EN-US_TOPIC_0000001233510133__li11264132317338">PERIOD indicates that data is partitioned by time period. The partition size may affect the query performance. The <a href="dws_06_0304.html#EN-US_TOPIC_0000001444998754__section9462151915274">proc_add_partition</a>(relname,period) function is automatically invoked to create a partition after each period. Time To Live (TTL) specifies the data storage period of the table. The data that exceeds the TTL period will be cleared. To do this, the <a href="dws_06_0304.html#EN-US_TOPIC_0000001444998754__section9128833152714">proc_drop_partition</a>(relname,ttl) function is automatically invoked based on the period. The <strong id="EN-US_TOPIC_0000001233510133__b173191527174811">PERIOD</strong> and <strong id="EN-US_TOPIC_0000001233510133__b13777153313484">TTL</strong> values are of the Interval type, for example, <strong id="EN-US_TOPIC_0000001233510133__b18794164124817">1 hour</strong>, <strong id="EN-US_TOPIC_0000001233510133__b218184974810">1 day</strong>, <strong id="EN-US_TOPIC_0000001233510133__b1080195510482">1 week</strong>, <strong id="EN-US_TOPIC_0000001233510133__b1766959194816">1 month</strong>, <strong id="EN-US_TOPIC_0000001233510133__b19391446491">1 year</strong>, and <strong id="EN-US_TOPIC_0000001233510133__b1573712121494">1 month 2 day 3 hour</strong>.</li><li id="EN-US_TOPIC_0000001233510133__li21131420223">The hybrid data warehouse (standalone) does not support automatic partition deletion.</li></ul>
|
||
</div></div>
|
||
</li><li id="EN-US_TOPIC_0000001233510133__li13221173584810">COLVERSION<p id="EN-US_TOPIC_0000001233510133__p32211935184811"><a name="EN-US_TOPIC_0000001233510133__li13221173584810"></a><a name="li13221173584810"></a>Specifies the version of the column-store format. Switching between different storage formats is supported. However, the storage format of a partitioned table cannot be switched.</p>
|
||
<p id="EN-US_TOPIC_0000001233510133__p0221183544810">Valid value:</p>
|
||
<p id="EN-US_TOPIC_0000001233510133__p1922183514480"><strong id="EN-US_TOPIC_0000001233510133__b49461492215">1.0</strong>: Each column in a column-store table is stored in a separate file. The file name is <strong id="EN-US_TOPIC_0000001233510133__b1995115913217">relfilenode.C1.0</strong>, <strong id="EN-US_TOPIC_0000001233510133__b89514912218">relfilenode.C2.0</strong>, <strong id="EN-US_TOPIC_0000001233510133__b1595212911215">relfilenode.C3.0</strong>, or similar.</p>
|
||
<p id="EN-US_TOPIC_0000001233510133__p722103584820"><strong id="EN-US_TOPIC_0000001233510133__b786720101124">2.0</strong>: All columns of a column-store table are combined and stored in a file. The file is named <strong id="EN-US_TOPIC_0000001233510133__b886712101124">relfilenode.C1.0</strong>.</p>
|
||
<p id="EN-US_TOPIC_0000001233510133__p42212356480">Default value: <strong id="EN-US_TOPIC_0000001233510133__b5306411581">2.0</strong></p>
|
||
<p id="EN-US_TOPIC_0000001233510133__p98431421191520">The value of <strong id="EN-US_TOPIC_0000001233510133__b178741311184913">COLVERSION</strong> can only be set to <strong id="EN-US_TOPIC_0000001233510133__b1887418117495">2.0</strong> for OBS multi-temperature tables.</p>
|
||
<div class="note" id="EN-US_TOPIC_0000001233510133__note324584962517"><img src="public_sys-resources/note_3.0-en-us.png"><span class="notetitle"> </span><div class="notebody"><p id="EN-US_TOPIC_0000001233510133__p1566713589250">When creating a column-store table, set <strong id="EN-US_TOPIC_0000001233510133__b1642517128218">COLVERSION</strong> to <strong id="EN-US_TOPIC_0000001233510133__b204271712325">2.0</strong>. Compared with the <strong id="EN-US_TOPIC_0000001233510133__b842716121828">1.0</strong> storage format, the performance is significantly improved:</p>
|
||
<ol id="EN-US_TOPIC_0000001233510133__ol141291029152617"><li id="EN-US_TOPIC_0000001233510133__li113062920266">The time required for creating a column-store wide table is significantly reduced.</li><li id="EN-US_TOPIC_0000001233510133__li19427204142616">In the Roach data backup scenario, the backup time is significantly reduced.</li><li id="EN-US_TOPIC_0000001233510133__li2178947192613">The build and catch up time is greatly reduced.</li><li id="EN-US_TOPIC_0000001233510133__li6836125342615">The occupied disk space decreases significantly.</li></ol>
|
||
</div></div>
|
||
</li></ul>
|
||
<ul id="EN-US_TOPIC_0000001233510133__ul19585115472214"><li id="EN-US_TOPIC_0000001233510133__li32608317479">SKIP_FPI_HINT<p id="EN-US_TOPIC_0000001233510133__p185568515461"><a name="EN-US_TOPIC_0000001233510133__li32608317479"></a><a name="li32608317479"></a>Indicates whether to skip the hint bits operation when the full-page writes (FPW) log needs to be written during sequential scanning.</p>
|
||
<div class="p" id="EN-US_TOPIC_0000001233510133__p3172164012188">Default value: <strong id="EN-US_TOPIC_0000001233510133__b574627685105912">false</strong><div class="note" id="EN-US_TOPIC_0000001233510133__note177211636121818"><img src="public_sys-resources/note_3.0-en-us.png"><span class="notetitle"> </span><div class="notebody"><p id="EN-US_TOPIC_0000001233510133__p1721193631819">If <strong id="EN-US_TOPIC_0000001233510133__b105136355195">SKIP_FPI_HINT</strong> is set to <strong id="EN-US_TOPIC_0000001233510133__b1551443551920">true</strong> and the checkpoint operation is performed on a table, no Xlog will be generated when the table is sequentially scanned. This applies to intermediate tables that are queried less frequently, reducing the size of Xlogs and improving query performance.</p>
|
||
</div></div>
|
||
</div>
|
||
</li></ul>
|
||
</li><li id="EN-US_TOPIC_0000001233510133__lf5978aa4c4ef490d99c2de6c24206c5a"><strong id="EN-US_TOPIC_0000001233510133__a05b73d9c0d9b44c1b6cb24e5cac8f777">COMPRESS / NOCOMPRESS</strong><p id="EN-US_TOPIC_0000001233510133__a9452532e9dec44ceb491fb616365b0b3">Specifies the keyword <strong id="EN-US_TOPIC_0000001233510133__b84235270685040">COMPRESS</strong> during the creation of a table, so that the compression feature is triggered in the case of a bulk <strong id="EN-US_TOPIC_0000001233510133__b522675911783">INSERT</strong> operation. If this feature is enabled, a scan is performed for all tuple data within the page to generate a dictionary and then the tuple data is compressed and stored. If <strong id="EN-US_TOPIC_0000001233510133__b6462771783">NOCOMPRESS</strong> is specified, the table is not compressed.</p>
|
||
<p id="EN-US_TOPIC_0000001233510133__abd5ad0ffd8584c01a9e52a39a8d35993">Default value: <strong id="EN-US_TOPIC_0000001233510133__b84235270611315">NOCOMPRESS</strong>, tuple data is not compressed before storage.</p>
|
||
</li><li id="EN-US_TOPIC_0000001233510133__laaafba88a91a4fce98ae39e8ac61d8d9"><strong id="EN-US_TOPIC_0000001233510133__a7eb1eaa973c54067b0acafa5c06cd2fd">DISTRIBUTE BY</strong><p id="EN-US_TOPIC_0000001233510133__ac20cea460c4e42a58fdb735d5be1ec0a">Specifies how the table is distributed or replicated between DNs.</p>
|
||
<p id="EN-US_TOPIC_0000001233510133__a29ee3cb593654b45ba67155ee17f3b67">Valid value:</p>
|
||
<ul id="EN-US_TOPIC_0000001233510133__u30153d924bb04ddaaaddb9d66b60e198"><li id="EN-US_TOPIC_0000001233510133__l2e86077944e74c73a4b134e794433bbd"><strong id="EN-US_TOPIC_0000001233510133__b14899625194618">REPLICATION</strong>: Each row in the table exists on all DNs, that is, each DN has complete table data.</li><li id="EN-US_TOPIC_0000001233510133__li3915156553"><strong id="EN-US_TOPIC_0000001233510133__b1224915172016">ROUNDROBIN</strong>: Each row in the table is sent to each DN in turn. Therefore, data is evenly distributed on each DN. This value is supported only in 8.1.2 or later.</li><li id="EN-US_TOPIC_0000001233510133__leaf9002978a646fdaa891b19706f53f1"><strong id="EN-US_TOPIC_0000001233510133__b9902122564617">HASH (column_name)</strong>: Each row of the table will be placed into all the DNs based on the hash value of the specified column.</li></ul>
|
||
<div class="notice" id="EN-US_TOPIC_0000001233510133__n8a490703ed39425da9cf3a5c4ff54a4a"><span class="noticetitle"><img src="public_sys-resources/notice_3.0-en-us.png"> </span><div class="noticebody"><ul id="EN-US_TOPIC_0000001233510133__u53f84c4f46c34d1f9519413a6f38b28a"><li id="EN-US_TOPIC_0000001233510133__lcc8af4772df64fa286efea01f67edb78">When <strong id="EN-US_TOPIC_0000001233510133__b99069255467">DISTRIBUTE BY HASH (column_name)</strong> is specified, the primary key and its unique index must contain the <strong id="EN-US_TOPIC_0000001233510133__b18906625134620">column_name</strong> column.</li><li id="EN-US_TOPIC_0000001233510133__l3609b7320d044174b13dec49a656a891">When <strong id="EN-US_TOPIC_0000001233510133__b0907112510466">DISTRIBUTE BY HASH (column_name)</strong> in a referenced table is specified, the foreign key of the reference table must contain the <strong id="EN-US_TOPIC_0000001233510133__b89077252467">column_name</strong> column.</li></ul>
|
||
</div></div>
|
||
<div class="p" id="EN-US_TOPIC_0000001233510133__p14251115041812">Default value: determined by the GUC parameter <strong id="EN-US_TOPIC_0000001233510133__b10746281201">default_distribution_mode</strong><ul id="EN-US_TOPIC_0000001233510133__ul878364963015"><li id="EN-US_TOPIC_0000001233510133__li14783249163014">When <strong id="EN-US_TOPIC_0000001233510133__b6749143152019">default_distribution_mode</strong> is set to <strong id="EN-US_TOPIC_0000001233510133__b6749173132019">roundrobin</strong>, the default value of <strong id="EN-US_TOPIC_0000001233510133__b19750163116202">DISTRIBUTE BY</strong> is selected according to the following rules:<ol id="EN-US_TOPIC_0000001233510133__ol137381934837"><li id="EN-US_TOPIC_0000001233510133__li87381341531">If the primary key or unique constraint is included during table creation, hash distribution is selected. The distribution column is the column corresponding to the primary key or unique constraint.</li><li id="EN-US_TOPIC_0000001233510133__li0741558414">If the primary key or unique constraint is not included during table creation, round-robin distribution is selected.</li></ol>
|
||
</li><li id="EN-US_TOPIC_0000001233510133__li1645915396371">When <strong id="EN-US_TOPIC_0000001233510133__b1730755032016">default_distribution_mode</strong> is set to <strong id="EN-US_TOPIC_0000001233510133__b430885042017">hash</strong>, the default value of <strong id="EN-US_TOPIC_0000001233510133__b183091650162013">DISTRIBUTE BY</strong> is selected according to the following rules:<ol id="EN-US_TOPIC_0000001233510133__ol115828818381"><li id="EN-US_TOPIC_0000001233510133__li38741447517">If the primary key or unique constraint is included during table creation, hash distribution is selected. The distribution column is the column corresponding to the primary key or unique constraint.</li><li id="EN-US_TOPIC_0000001233510133__li990712591559">If the primary key or unique constraint is not included during table creation but there are columns whose data types can be used as distribution columns, hash distribution is selected. The distribution column is the first column whose data type can be used as a distribution column.</li><li id="EN-US_TOPIC_0000001233510133__li462574677">If the primary key or unique constraint is not included during table creation and no column whose data type can be used as a distribution column exists, round-robin distribution is selected.</li></ol>
|
||
</li></ul>
|
||
</div>
|
||
<div class="p" id="EN-US_TOPIC_0000001233510133__p613875615407">The following data types can be used as distribution columns:<ul id="EN-US_TOPIC_0000001233510133__ul8929105634111"><li id="EN-US_TOPIC_0000001233510133__li18929256194113">Integer types: <strong id="EN-US_TOPIC_0000001233510133__b207827204219">TINYINT</strong>, <strong id="EN-US_TOPIC_0000001233510133__b1878372032120">SMALLINT</strong>, <strong id="EN-US_TOPIC_0000001233510133__b67848205212">INT</strong>, <strong id="EN-US_TOPIC_0000001233510133__b1978552082118">BIGINT</strong>, and <strong id="EN-US_TOPIC_0000001233510133__b2786142018219">NUMERIC/DECIMAL</strong></li><li id="EN-US_TOPIC_0000001233510133__li148954319420">Character types: <strong id="EN-US_TOPIC_0000001233510133__b977512622113">CHAR</strong>, <strong id="EN-US_TOPIC_0000001233510133__b137761926162118">BPCHAR</strong>, <strong id="EN-US_TOPIC_0000001233510133__b077742614216">VARCHAR</strong>, <strong id="EN-US_TOPIC_0000001233510133__b177842692111">VARCHAR2</strong>, <strong id="EN-US_TOPIC_0000001233510133__b1577912619213">NVARCHAR2</strong>, and <strong id="EN-US_TOPIC_0000001233510133__b47801526172115">TEXT</strong></li><li id="EN-US_TOPIC_0000001233510133__li14231162624317">Date/time types: <strong id="EN-US_TOPIC_0000001233510133__b92487319211">DATE</strong>, <strong id="EN-US_TOPIC_0000001233510133__b17250131152116">TIME</strong>, <strong id="EN-US_TOPIC_0000001233510133__b5251123118219">TIMETZ</strong>, <strong id="EN-US_TOPIC_0000001233510133__b5252931162113">TIMESTAMP</strong>, <strong id="EN-US_TOPIC_0000001233510133__b1925323152112">TIMESTAMPTZ</strong>, <strong id="EN-US_TOPIC_0000001233510133__b32541031172118">INTERVAL</strong>, and <strong id="EN-US_TOPIC_0000001233510133__b1625533118213">SMALLDATETIME</strong></li></ul>
|
||
</div>
|
||
</li><li id="EN-US_TOPIC_0000001233510133__l952d2eb00a7a47bbaa7a6eab40966b69"><strong id="EN-US_TOPIC_0000001233510133__ae3a58cce858a4746a33e116011f28202">TO { GROUP groupname | NODE ( nodename [, ... ] ) }</strong><p id="EN-US_TOPIC_0000001233510133__a337dcd05ab1646748b2fc1e83c683295"><strong id="EN-US_TOPIC_0000001233510133__b842352706112750">TO GROUP</strong> specifies the Node Group in which the table is created. Currently, it cannot be used for HDFS tables. <strong id="EN-US_TOPIC_0000001233510133__b842352706152947">TO NODE</strong> is used for internal scale-out tools.</p>
|
||
</li><li id="EN-US_TOPIC_0000001233510133__lb144da954d4c4ac58c1e9ae1391e59ac"><a name="EN-US_TOPIC_0000001233510133__lb144da954d4c4ac58c1e9ae1391e59ac"></a><a name="lb144da954d4c4ac58c1e9ae1391e59ac"></a><strong id="EN-US_TOPIC_0000001233510133__afeb1d13235b04b078f877e95294c5bcd">PARTITION BY RANGE(partition_key)</strong><p id="EN-US_TOPIC_0000001233510133__aec7bd416e9c7435e91e2e6fafe9ad8bb">The syntax specifying range partitioning. <strong id="EN-US_TOPIC_0000001233510133__b12768115317310">partition_key</strong> indicates the name of a partition key.</p>
|
||
<p id="EN-US_TOPIC_0000001233510133__p1850525435412">(1) Assume that the <strong id="EN-US_TOPIC_0000001233510133__b184197331359">VALUES LESS THAN</strong> syntax is used.</p>
|
||
<div class="notice" id="EN-US_TOPIC_0000001233510133__nd1e251905b0c4e69ae66a81508bd6d4b"><span class="noticetitle"><img src="public_sys-resources/notice_3.0-en-us.png"> </span><div class="noticebody"><p id="EN-US_TOPIC_0000001233510133__aef6fb9a8036e4f97ba09a70fba7f26b7">In this case, a maximum of four partition keys are supported, and the partition key must be a column name. If there are multiple partition keys, a column name can appear only once, and two adjacent partition keys must be separated by a comma (,).</p>
|
||
</div></div>
|
||
<p id="EN-US_TOPIC_0000001233510133__ae1d8747b220b4d73aa11d61cf3de0907">Data types supported by the partition keys are as follows: SMALLINT, INTEGER, BIGINT, DECIMAL, NUMERIC, REAL, DOUBLE PRECISION, CHARACTER VARYING(n), VARCHAR(n), CHARACTER(n), CHAR(n), CHARACTER, CHAR, TEXT, NVARCHAR2, NAME, TIMESTAMP[(p)] [WITHOUT TIME ZONE], TIMESTAMP[(p)] [WITH TIME ZONE], and DATE.</p>
|
||
<p id="EN-US_TOPIC_0000001233510133__p1832219614579">(2) Assume that the <strong id="EN-US_TOPIC_0000001233510133__b14421729780">START END</strong> syntax is used.</p>
|
||
<div class="notice" id="EN-US_TOPIC_0000001233510133__note155073594110"><span class="noticetitle"><img src="public_sys-resources/notice_3.0-en-us.png"> </span><div class="noticebody"><p id="EN-US_TOPIC_0000001233510133__p15081359115">In this case, only one partition key is supported.</p>
|
||
</div></div>
|
||
<p id="EN-US_TOPIC_0000001233510133__p774418158575">Data types supported by the partition key are as follows: SMALLINT, INTEGER, BIGINT, DECIMAL, NUMERIC, REAL, DOUBLE PRECISION, TIMESTAMP[(p)] [WITHOUT TIME ZONE], TIMESTAMP[(p)] [WITH TIME ZONE], and DATE.</p>
|
||
</li><li id="EN-US_TOPIC_0000001233510133__li7136101117338"><strong id="EN-US_TOPIC_0000001233510133__b1813661111339">PARTITION BY LIST (partition_key,[...])</strong><p id="EN-US_TOPIC_0000001233510133__p71364110330">The syntax specifying list partitioning. <strong id="EN-US_TOPIC_0000001233510133__b15715222855">partition_key</strong> indicates the name of a partition key.</p>
|
||
<div class="notice" id="EN-US_TOPIC_0000001233510133__note1713691111332"><span class="noticetitle"><img src="public_sys-resources/notice_3.0-en-us.png"> </span><div class="noticebody"><p id="EN-US_TOPIC_0000001233510133__p215275215230">In list partitioning, a partition key has a maximum of four columns.</p>
|
||
</div></div>
|
||
<p id="EN-US_TOPIC_0000001233510133__p161361114335">In list partitioning, the partition key supports the following data types: TINYINT, SMALLINT, INTEGER, BIGINT, NUMERIC/DECIMAL, TEXT, NVARCHAR2, VARCHAR(n), CHAR, BPCHAR, TIME, TIME WITH TIMEZONE, TIMESTAMP, TIMESTAMP WITH TIME ZONE, DATE, INTERVAL and SMALLDATETIME.</p>
|
||
</li><li id="EN-US_TOPIC_0000001233510133__li1186419412234"><strong id="EN-US_TOPIC_0000001233510133__b3679163017236">partition_less_than_item</strong><div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001233510133__screen28362024164517"><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="n">PARTITION</span><span class="w"> </span><span class="n">partition_name</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="w"> </span><span class="p">(</span><span class="w"> </span><span class="err">{</span><span class="w"> </span><span class="n">partition_value</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>
|
||
</pre></div></td></tr></table></div>
|
||
|
||
</div>
|
||
<p id="EN-US_TOPIC_0000001233510133__aff4d9c1d294b45709d2d428bb69bdaf3">Partition definition syntax in range partitioning. <strong id="EN-US_TOPIC_0000001233510133__b84235270611736">partition_name</strong> is the name of a range partition. <strong id="EN-US_TOPIC_0000001233510133__b84235270611933">partition_value</strong> is the upper limit of range partition, and the value depends on the type of <strong id="EN-US_TOPIC_0000001233510133__b842352706111011">partition_key</strong>. <strong id="EN-US_TOPIC_0000001233510133__b356952817739">MAXVALUE</strong> can specify the upper boundary of a range partition, and it is commonly used to specify the upper boundary of the last range partition.</p>
|
||
<div class="notice" id="EN-US_TOPIC_0000001233510133__nb6a6b7b2806d4844b31b500c776a48a7"><span class="noticetitle"><img src="public_sys-resources/notice_3.0-en-us.png"> </span><div class="noticebody"><ul id="EN-US_TOPIC_0000001233510133__ul861645913157"><li id="EN-US_TOPIC_0000001233510133__li2616185941517">Upper boundaries must be specified for each partition.</li><li id="EN-US_TOPIC_0000001233510133__li86168591159">The types of upper boundaries must be the same as those of partition keys.</li><li id="EN-US_TOPIC_0000001233510133__li1661675961516">In a partition list, partitions are arranged in ascending order of upper boundary values. Therefore, a partition with a certain upper boundary value is placed before another partition with a larger upper boundary value.</li><li id="EN-US_TOPIC_0000001233510133__li154195449593">If a partition key consists of multiple columns, the columns are used for partitioning in sequence. The first column is preferred to be used for partitioning. If the values of the first columns are the same, the second column is used. The subsequent columns are used in the same manner.</li></ul>
|
||
</div></div>
|
||
</li><li id="EN-US_TOPIC_0000001233510133__li2094151861116"><a name="EN-US_TOPIC_0000001233510133__li2094151861116"></a><a name="li2094151861116"></a><strong id="EN-US_TOPIC_0000001233510133__b104471053152717">partition_start_end_item</strong><div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001233510133__screen18514164382714"><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="n">PARTITION</span><span class="w"> </span><span class="n">partition_name</span><span class="w"> </span><span class="err">{</span><span class="k">START</span><span class="w"> </span><span class="p">(</span><span class="n">partition_value</span><span class="p">)</span><span class="w"> </span><span class="k">END</span><span class="w"> </span><span class="p">(</span><span class="n">partition_value</span><span class="p">)</span><span class="w"> </span><span class="k">EVERY</span><span class="w"> </span><span class="p">(</span><span class="n">interval_value</span><span class="p">)</span><span class="err">}</span><span class="w"> </span>
|
||
<span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="err">{</span><span class="k">START</span><span class="w"> </span><span class="p">(</span><span class="n">partition_value</span><span class="p">)</span><span class="w"> </span><span class="k">END</span><span class="w"> </span><span class="p">(</span><span class="n">partition_value</span><span class="o">|</span><span class="k">MAXVALUE</span><span class="p">)</span><span class="err">}</span><span class="w"> </span>
|
||
<span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="err">{</span><span class="k">START</span><span class="p">(</span><span class="n">partition_value</span><span class="p">)</span><span class="err">}</span>
|
||
<span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="err">{</span><span class="k">END</span><span class="w"> </span><span class="p">(</span><span class="n">partition_value</span><span class="o">|</span><span class="w"> </span><span class="k">MAXVALUE</span><span class="p">)</span><span class="err">}</span>
|
||
</pre></div></td></tr></table></div>
|
||
|
||
</div>
|
||
<p id="EN-US_TOPIC_0000001233510133__p5457183272811">The syntax of using the start value and interval value to define a range partition. The parameters are described as follows:</p>
|
||
<ul id="EN-US_TOPIC_0000001233510133__ul474222022918"><li id="EN-US_TOPIC_0000001233510133__li1934812914318"><strong id="EN-US_TOPIC_0000001233510133__b181541055151310">partition_name</strong>: name or name prefix of a range partition. It is the name prefix only in the following cases (assuming that <strong id="EN-US_TOPIC_0000001233510133__b21707287173">partition_name</strong> is <strong id="EN-US_TOPIC_0000001233510133__b33581930151710">p1</strong>):<ul id="EN-US_TOPIC_0000001233510133__ul2260440124111"><li id="EN-US_TOPIC_0000001233510133__li1162851102617">If START+END+EVERY is used, the names of partitions will be defined as <strong id="EN-US_TOPIC_0000001233510133__b35412924417">p1_1</strong>, <strong id="EN-US_TOPIC_0000001233510133__b191331511144410">p1_2</strong>, and the like. For example, if <strong id="EN-US_TOPIC_0000001233510133__b0811181594419">PARTITION p1 START(1) END(4) EVERY(1)</strong> is defined, the generated partitions are [1, 2), [2, 3), and [3, 4), and their names are <strong id="EN-US_TOPIC_0000001233510133__b10217335124410">p1_1</strong>, <strong id="EN-US_TOPIC_0000001233510133__b109998366447">p1_2</strong>, and <strong id="EN-US_TOPIC_0000001233510133__b2358163918447">p1_3</strong>. In this case, <strong id="EN-US_TOPIC_0000001233510133__b141474817445">p1</strong> is a name prefix.</li><li id="EN-US_TOPIC_0000001233510133__li32049373337">If the defined statement is in the first place and has <strong id="EN-US_TOPIC_0000001233510133__b1539451481618">START</strong> specified, the range (<strong id="EN-US_TOPIC_0000001233510133__b7725103019556">MINVALUE</strong>, <strong id="EN-US_TOPIC_0000001233510133__b114914321554">START</strong>) will be automatically used as the first actual partition, and its name will be <strong id="EN-US_TOPIC_0000001233510133__b119693564912">p1_0</strong>. The other partitions are then named <strong id="EN-US_TOPIC_0000001233510133__b98242058124919">p1_1</strong>, <strong id="EN-US_TOPIC_0000001233510133__b169349117502">p1_2</strong>, and the like. For example, if <strong id="EN-US_TOPIC_0000001233510133__b2756142412502">PARTITION p1 START(1), PARTITION p2 START(2)</strong> is defined, generated partitions are (MINVALUE, 1), [1, 2), and [2, MAXVALUE), and their names will be <strong id="EN-US_TOPIC_0000001233510133__b1140584945118">p1_0</strong>, <strong id="EN-US_TOPIC_0000001233510133__b1720295465111">p1_1</strong>, and <strong id="EN-US_TOPIC_0000001233510133__b18593125218517">p2</strong>. In this case, <strong id="EN-US_TOPIC_0000001233510133__b8301233521">p1</strong> is a name prefix and <strong id="EN-US_TOPIC_0000001233510133__b1592112705215">p2</strong> is a partition name. <strong id="EN-US_TOPIC_0000001233510133__b1871131713525">MINVALUE</strong> means the minimum value.</li></ul>
|
||
</li><li id="EN-US_TOPIC_0000001233510133__li57341353123113"><strong id="EN-US_TOPIC_0000001233510133__b764919304525">partition_value</strong>: start point value or end point value of a range partition. The value depends on <strong id="EN-US_TOPIC_0000001233510133__b282125413524">partition_key</strong> and cannot be <strong id="EN-US_TOPIC_0000001233510133__b14553514535">MAXVALUE</strong>.</li><li id="EN-US_TOPIC_0000001233510133__li441355619353"><strong id="EN-US_TOPIC_0000001233510133__b17471113411540">interval_value</strong>: width of each partition for dividing the [<strong id="EN-US_TOPIC_0000001233510133__b447113345549">START</strong>, <strong id="EN-US_TOPIC_0000001233510133__b164711834165410">END</strong>) range. It cannot be <strong id="EN-US_TOPIC_0000001233510133__b124711334125414">MAXVALUE</strong>. If the value of (<strong id="EN-US_TOPIC_0000001233510133__b194711234175419">END</strong> – <strong id="EN-US_TOPIC_0000001233510133__b184711834115410">START</strong>) divided by <strong id="EN-US_TOPIC_0000001233510133__b8471103465412">EVERY</strong> has a remainder, the width of only the last partition is less than the value of <strong id="EN-US_TOPIC_0000001233510133__b94711234195416">EVERY</strong>.</li><li id="EN-US_TOPIC_0000001233510133__li19743172082915"><strong id="EN-US_TOPIC_0000001233510133__b11689125542715">MAXVALUE</strong>: maximum value. It is usually used to set the upper boundary for the last range partition.</li></ul>
|
||
<div class="notice" id="EN-US_TOPIC_0000001233510133__note1260511153100"><span class="noticetitle"><img src="public_sys-resources/notice_3.0-en-us.png"> </span><div class="noticebody"><ol id="EN-US_TOPIC_0000001233510133__ol0606515131011"><li id="EN-US_TOPIC_0000001233510133__li18608215101010">If the defined statement is in the first place and has <strong id="EN-US_TOPIC_0000001233510133__b91405356176">START</strong> specified, the range (<strong id="EN-US_TOPIC_0000001233510133__b47713183556">MINVALUE</strong>, <strong id="EN-US_TOPIC_0000001233510133__b6460132005510">START</strong>) will be automatically used as the first actual partition.</li><li id="EN-US_TOPIC_0000001233510133__li358021011157">The <strong id="EN-US_TOPIC_0000001233510133__b14378761310">START END</strong> syntax must comply with the following rules:<ul id="EN-US_TOPIC_0000001233510133__ul106578178151"><li id="EN-US_TOPIC_0000001233510133__li16657181710159">The value of <strong id="EN-US_TOPIC_0000001233510133__b1599953318345">START</strong> (if any, same for the following situations) in each <strong id="EN-US_TOPIC_0000001233510133__b2201193811561">partition_start_end_item</strong> must be smaller than that of <strong id="EN-US_TOPIC_0000001233510133__b1138874218347">END</strong>.</li><li id="EN-US_TOPIC_0000001233510133__li971274618164">In two adjacent <strong id="EN-US_TOPIC_0000001233510133__b124517291577">partition_start_end_item</strong> statements, the value of the first <strong id="EN-US_TOPIC_0000001233510133__b18561340163611">END</strong> must be equal to that of the second <strong id="EN-US_TOPIC_0000001233510133__b246395214363">START</strong>.</li><li id="EN-US_TOPIC_0000001233510133__li14736133618183">The value of <strong id="EN-US_TOPIC_0000001233510133__b86351713376">EVERY</strong> in each <strong id="EN-US_TOPIC_0000001233510133__b1261933518588">partition_start_end_item</strong> must be a positive number (in ascending order) and must be smaller than <strong id="EN-US_TOPIC_0000001233510133__b12641133412373">END</strong> minus <strong id="EN-US_TOPIC_0000001233510133__b716184293716">START</strong>.</li><li id="EN-US_TOPIC_0000001233510133__li14536161519228">Each partition includes the start value (unless it is <strong id="EN-US_TOPIC_0000001233510133__b5935811729">MINVALUE</strong>) and excludes the end value. The format is as follows: [Start value, end value).</li><li id="EN-US_TOPIC_0000001233510133__li11392115215301">Partitions created by the same <strong id="EN-US_TOPIC_0000001233510133__b157071724124">partition_start_end_item</strong> belong to the same tablespace.</li><li id="EN-US_TOPIC_0000001233510133__li943618157154">If <strong id="EN-US_TOPIC_0000001233510133__b13438724114611">partition_name</strong> is a name prefix of a partition, the length must not exceed 57 bytes. If there are more than 57 bytes, the prefix will be automatically truncated.</li><li id="EN-US_TOPIC_0000001233510133__li1770933882020">When creating or modifying a partitioned table, ensure that the total number of partitions in the table does not exceed the maximum value (32767).</li></ul>
|
||
</li><li id="EN-US_TOPIC_0000001233510133__li6780164617498">In statements for creating partitioned tables, <strong id="EN-US_TOPIC_0000001233510133__b12347694715">START END</strong> and <strong id="EN-US_TOPIC_0000001233510133__b1703411134716">LESS THAN</strong> cannot be used together.</li><li id="EN-US_TOPIC_0000001233510133__li17731727132913">The <strong id="EN-US_TOPIC_0000001233510133__b660818532913">START END</strong> syntax in a partitioned table creation SQL statement will be replaced with the <strong id="EN-US_TOPIC_0000001233510133__b86058533920">VALUES LESS THAN</strong> syntax when <strong id="EN-US_TOPIC_0000001233510133__b16603353197">gs_dump</strong> is executed.</li></ol>
|
||
</div></div>
|
||
</li><li id="EN-US_TOPIC_0000001233510133__li18337825141917">list_partition_item<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001233510133__screen1321617333412"><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="n">PARTITION</span><span class="w"> </span><span class="n">partition_name</span><span class="w"> </span><span class="k">VALUES</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="n">partition_value</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="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>
|
||
</pre></div></td></tr></table></div>
|
||
|
||
</div>
|
||
<p id="EN-US_TOPIC_0000001233510133__p74072719918">Partition definition syntax in list partitioning. <strong id="EN-US_TOPIC_0000001233510133__b171631430191320">partition_name</strong> indicates the partition name. <strong id="EN-US_TOPIC_0000001233510133__b548310445130">partition_value</strong> is an enumerated value of the list partition boundary. The value depends on the type of <strong id="EN-US_TOPIC_0000001233510133__b011618418143">partition_key</strong>. <strong id="EN-US_TOPIC_0000001233510133__b25411433141410">DEFAULT</strong> indicates the default partition boundary.</p>
|
||
<div class="notice" id="EN-US_TOPIC_0000001233510133__note4407147592"><span class="noticetitle"><img src="public_sys-resources/notice_3.0-en-us.png"> </span><div class="noticebody"><p id="EN-US_TOPIC_0000001233510133__p1309514144016">The following conventions and constraints apply to list partitioned tables:</p>
|
||
<ul id="EN-US_TOPIC_0000001233510133__ul124079712919"><li id="EN-US_TOPIC_0000001233510133__li105701736194813"><a name="EN-US_TOPIC_0000001233510133__li105701736194813"></a><a name="li105701736194813"></a>The partition whose boundary value is <strong id="EN-US_TOPIC_0000001233510133__b1192203319159">DEFAULT</strong> is the default partition.</li><li id="EN-US_TOPIC_0000001233510133__li194079716919">Each list partitioned table can have only one DEFAULT partition.</li><li id="EN-US_TOPIC_0000001233510133__li8131155113915">The number of partitions in a partitioned table cannot exceed 32767, and the number of boundary values of all partitions cannot exceed 32767.</li><li id="EN-US_TOPIC_0000001233510133__li74072073910">Regardless of the number of partition keys, the boundary of the DEFAULT partition can only be DEFAULT.</li><li id="EN-US_TOPIC_0000001233510133__li15924828154313">If a partition key consists of multiple columns, each <strong id="EN-US_TOPIC_0000001233510133__b1551234911815">partition_value</strong> must contain the values of all partition keys. If a partition key contains only one column, the parentheses on both sides of <strong id="EN-US_TOPIC_0000001233510133__b149098176198">partition_value</strong> can be omitted. For details, see <a href="#EN-US_TOPIC_0000001233510133__li72564306344">Example 4: Creating a List Partitioned Table With Multiple Partition Keys</a>.</li><li id="EN-US_TOPIC_0000001233510133__li14165172083414">If the partition key consists of multiple columns, compare the values in the columns one by one. If a value is different from another value, regardless of their columns, they are different values.</li><li id="EN-US_TOPIC_0000001233510133__li3407271093">Each value of <strong id="EN-US_TOPIC_0000001233510133__b2053792612407">partition_value</strong> must be unique.</li><li id="EN-US_TOPIC_0000001233510133__li1417042104917">When data is inserted, if its partition key and value falls into the boundary of a non-DEFAULT partition, the data is written to the partition. Otherwise, the data is written to the DEFAULT partition.</li></ul>
|
||
</div></div>
|
||
</li><li id="EN-US_TOPIC_0000001233510133__l1dc8211a4561436085df4044c91b7b4a"><strong id="EN-US_TOPIC_0000001233510133__a01f2a34d146c478489758224be37d84c">{ ENABLE | DISABLE } ROW MOVEMENT</strong><p id="EN-US_TOPIC_0000001233510133__a4a1007e961874e11a2079071a87ab446">Specifies the row movement switch.</p>
|
||
<p id="EN-US_TOPIC_0000001233510133__aa550cd28513c4bcab9a6f49be7174420">If the tuple value is updated on the partition key during the <strong id="EN-US_TOPIC_0000001233510133__b1344862066144645">UPDATE</strong> action, the partition where the tuple is located is altered. Setting of this parameter enables error messages to be reported or movement of the tuple between partitions.</p>
|
||
<p id="EN-US_TOPIC_0000001233510133__a69bf8da7595344fdbc42318c71ee4ae8">Valid value:</p>
|
||
<ul id="EN-US_TOPIC_0000001233510133__u54689144f2164218b95f08e5c8f0b5a7"><li id="EN-US_TOPIC_0000001233510133__laea7d0ab449f48d99cabc52fb3030152"><strong id="EN-US_TOPIC_0000001233510133__b3652898517739">ENABLE</strong>: Row movement is enabled.</li><li id="EN-US_TOPIC_0000001233510133__lcc75da93bd494ce79440d6b194543e6d"><strong id="EN-US_TOPIC_0000001233510133__b842352706111436">DISABLE</strong> (default value): Disable row movement.<div class="note" id="EN-US_TOPIC_0000001233510133__note1369122262219"><img src="public_sys-resources/note_3.0-en-us.png"><span class="notetitle"> </span><div class="notebody"><p id="EN-US_TOPIC_0000001233510133__p1680134164613"><strong id="EN-US_TOPIC_0000001233510133__b359774011593">ROW MOVEMENT</strong> is disabled by default, if it is not specified in the partitioned table. In this case, cross-partition update is not allowed. If <strong id="EN-US_TOPIC_0000001233510133__b625884310597">ENABLE ROW MOVEMENT</strong> is specified, cross-partition update is allowed. However, if <strong id="EN-US_TOPIC_0000001233510133__b425810436595">SELECT FOR UPDATE</strong> is executed concurrently to query the partitioned table, the query results may be instantaneously inconsistent. Therefore, exercise caution when performing this operation.</p>
|
||
</div></div>
|
||
</li></ul>
|
||
</li></ul>
|
||
</div>
|
||
<ul id="EN-US_TOPIC_0000001233510133__u459698ec4b2541b6832c7a7c312aa110"><li id="EN-US_TOPIC_0000001233510133__l5b76eb6a7ee04d7496c6c8a60561c166"><strong id="EN-US_TOPIC_0000001233510133__ae0d9f21849f545e69211fad4e90fe489">NOT NULL</strong><p id="EN-US_TOPIC_0000001233510133__a2343792cde554b9ba93284735524bd03">Indicates that the column is not allowed to contain <strong id="EN-US_TOPIC_0000001233510133__b87912263144857">NULL</strong> values. <strong id="EN-US_TOPIC_0000001233510133__b842352706104628">ENABLE</strong> can be omitted.</p>
|
||
</li><li id="EN-US_TOPIC_0000001233510133__l7e52c8db9f1146fc91fa17efc270062c"><strong id="EN-US_TOPIC_0000001233510133__a390c01d8d360443492b26d47cca0814a">NULL</strong><p id="EN-US_TOPIC_0000001233510133__a0602818224c44371bdc101a7a65d3565">Indicates that the column is allowed to contain <strong id="EN-US_TOPIC_0000001233510133__b842352706104637">NULL</strong> values. This is the default setting.</p>
|
||
<p id="EN-US_TOPIC_0000001233510133__a707e5d64b32643f5a4c928fcae472560">This clause is only provided for compatibility with non-standard SQL databases. You are advised not to use this clause.</p>
|
||
</li><li id="EN-US_TOPIC_0000001233510133__l48268d42d8044c2b843dff205997ee71"><strong id="EN-US_TOPIC_0000001233510133__a72246a51a0d84e4780eefe3c3e0596b8">CHECK (condition) [ NO INHERIT ]</strong><p id="EN-US_TOPIC_0000001233510133__aa9ecb43a8e8c41b1b625a1ae0f06113d">Specifies an expression producing a Boolean result which new or updated rows must satisfy for an insert or update operation to succeed. Expressions evaluating to <strong id="EN-US_TOPIC_0000001233510133__b84235270616515">TRUE</strong> or <strong id="EN-US_TOPIC_0000001233510133__b84235270616518">UNKNOWN</strong> succeed. If any row of an insert or update operation produces a FALSE result, an error exception is raised and the insert or update does not alter the database.</p>
|
||
<p id="EN-US_TOPIC_0000001233510133__ad4bc18f9fb2d47be882c7a672732e842">A check constraint specified as a column constraint should reference only the column's values, while an expression appearing in a table constraint can reference multiple columns.</p>
|
||
<p id="EN-US_TOPIC_0000001233510133__acd7d6a97de6341248d7c275d96b03052">A constraint marked with <strong id="EN-US_TOPIC_0000001233510133__b842352706165116">NO INHERIT</strong> will not propagate to child tables.</p>
|
||
<p id="EN-US_TOPIC_0000001233510133__a388ccfa5f89c4ba68e7589f08236053e"><strong id="EN-US_TOPIC_0000001233510133__b1159097101">ENABLE</strong> can be omitted.</p>
|
||
</li><li id="EN-US_TOPIC_0000001233510133__l30ada03e0ac040e7945ab1ada46196cd"><strong id="EN-US_TOPIC_0000001233510133__abe032586a55c4ca0bb3c2ead647fdef7">DEFAULT default_expr</strong><p id="EN-US_TOPIC_0000001233510133__aa5041d9e5124471498d06110bd6b5700">Assigns a default data value for a column. The value can be any variable-free expressions (Subqueries and cross-references to other columns in the current table are not allowed). The data type of the default expression must match the data type of the column.</p>
|
||
<p id="EN-US_TOPIC_0000001233510133__a28dbc7b750294e7c8b1892a9bfbc92a9">The default expression will be used in any insert operation that does not specify a value for the column. If there is no default value for a column, then the default value is <strong id="EN-US_TOPIC_0000001233510133__b842352706104725">NULL</strong>.</p>
|
||
</li><li id="EN-US_TOPIC_0000001233510133__l007a45fe3d38404fa08f634408658645"><strong id="EN-US_TOPIC_0000001233510133__a452fc482047f4857b7e965fe4185d578">UNIQUE index_parameters</strong><p id="EN-US_TOPIC_0000001233510133__aa913744db3c840949ba2daccd0e556ce"><strong id="EN-US_TOPIC_0000001233510133__a7287f10b6a484d48b06b5bf3e5595ad8">UNIQUE ( column_name [, ... ] ) index_parameters</strong></p>
|
||
<p id="EN-US_TOPIC_0000001233510133__ac2c947c9f31f44ed94413ed76e8deafd">Specifies that a group of one or more columns of a table can contain only unique values.</p>
|
||
<p id="EN-US_TOPIC_0000001233510133__a4c450a2ea12c4835bf9a979fdfb45864">For the purpose of a unique constraint, NULL is not considered equal.</p>
|
||
<div class="note" id="EN-US_TOPIC_0000001233510133__na760fa813973483abb9a87fd25aebcf1"><img src="public_sys-resources/note_3.0-en-us.png"><span class="notetitle"> </span><div class="notebody"><p id="EN-US_TOPIC_0000001233510133__a5d1d33a7b73047d0a6abfc918d9de012">If <strong id="EN-US_TOPIC_0000001233510133__b84235270610484">DISTRIBUTE BY REPLICATION</strong> is not specified, the column table that contains only unique values must contain distribution columns.</p>
|
||
</div></div>
|
||
</li><li id="EN-US_TOPIC_0000001233510133__l43b668280ae049ebaba65d1de233c322"><strong id="EN-US_TOPIC_0000001233510133__ae593d9ad241b4060aa8f411f53689f2f">PRIMARY KEY index_parameters</strong><p id="EN-US_TOPIC_0000001233510133__a63b5c0814cda409da43f9fa438ac4f20"><strong id="EN-US_TOPIC_0000001233510133__ae8703d869167410d9cebbceb2d92c7d7">PRIMARY KEY ( column_name [, ... ] ) index_parameters</strong></p>
|
||
<p id="EN-US_TOPIC_0000001233510133__a358b62638d184e96a66bbfb117a71df0">Specifies the primary key constraint specifies that a column or columns of a table can contain only unique (non-duplicate) and non-null values.</p>
|
||
<p id="EN-US_TOPIC_0000001233510133__ad3566c3cca62439f8bb4089030f618e4">Only one primary key can be specified for a table.</p>
|
||
<div class="note" id="EN-US_TOPIC_0000001233510133__nabc1022131bd4802908fbdcaf72779e8"><img src="public_sys-resources/note_3.0-en-us.png"><span class="notetitle"> </span><div class="notebody"><p id="EN-US_TOPIC_0000001233510133__a90f12df03cbe4df68bb36b4941d79bcf">If <strong id="EN-US_TOPIC_0000001233510133__b642462654615">DISTRIBUTE BY REPLICATION</strong> is not specified, the column set with a primary key constraint must contain distributed columns.</p>
|
||
</div></div>
|
||
</li><li id="EN-US_TOPIC_0000001233510133__lbea5503cc7684817857b116c6c064c17"><strong id="EN-US_TOPIC_0000001233510133__af66d9732a85b42bab2fb67d6187b1d53">DEFERRABLE | NOT DEFERRABLE</strong><p id="EN-US_TOPIC_0000001233510133__a51d1cf8fdafc44518eb1cf401d4e874b">Controls whether the constraint can be deferred. A constraint that is not deferrable will be checked immediately after every command. Checking of constraints that are deferrable can be postponed until the end of the transaction using the <strong id="EN-US_TOPIC_0000001233510133__b60118629161614">SET CONSTRAINTS</strong> command. <strong id="EN-US_TOPIC_0000001233510133__b37770752161614">NOT DEFERRABLE</strong> is the default value. Currently, only <strong id="EN-US_TOPIC_0000001233510133__b16575126778">UNIQUE</strong> and <strong id="EN-US_TOPIC_0000001233510133__b85752616714">PRIMARY KEY</strong> constraints of row-store tables accept this clause. All the other constraints are not deferrable.</p>
|
||
</li><li id="EN-US_TOPIC_0000001233510133__l826e6498d4024fe58e076b3b99ec89ce"><strong id="EN-US_TOPIC_0000001233510133__acea66a8e3fb54df08c48cd1aeb51ac21">INITIALLY IMMEDIATE | INITIALLY DEFERRED</strong><p id="EN-US_TOPIC_0000001233510133__a825df556c65f4cfd8456d68ae02f200a">If a constraint is deferrable, this clause specifies the default time to check the constraint.</p>
|
||
<ul id="EN-US_TOPIC_0000001233510133__u516ad966b14e4af19737c2a5870da947"><li id="EN-US_TOPIC_0000001233510133__lecf8246141774966942e09779faee5a5">If the constraint is <strong id="EN-US_TOPIC_0000001233510133__b44131592161921">INITIALLY IMMEDIATE</strong> (default value), it is checked after each statement.</li><li id="EN-US_TOPIC_0000001233510133__l5d3775494de944ad9ff304ec6daa0406">If the constraint is <strong id="EN-US_TOPIC_0000001233510133__b17889208161921">INITIALLY DEFERRED</strong>, it is checked only at the end of the transaction.</li></ul>
|
||
<p id="EN-US_TOPIC_0000001233510133__a40bedcf90658451a927d78f1f7859c3e">The constraint check time can be altered using the <strong id="EN-US_TOPIC_0000001233510133__b39739724161921">SET CONSTRAINTS</strong> command.</p>
|
||
</li></ul>
|
||
<div class="section" id="EN-US_TOPIC_0000001233510133__s77407656b97f4cc6afb8b9812eb08056"><h4 class="sectiontitle">Examples</h4><ul id="EN-US_TOPIC_0000001233510133__u5be6b4510a2e4ea99f5a93c6747bc30e"><li id="EN-US_TOPIC_0000001233510133__li676415367017">Example 1: Use the <strong id="EN-US_TOPIC_0000001233510133__b944668611112736">LESS THAN</strong> syntax to create a range partitioned table.<p id="EN-US_TOPIC_0000001233510133__p2776121613">The range partitioned table <strong id="EN-US_TOPIC_0000001233510133__b590369790112736">customer_address</strong> has four partitions and their partition keys are of the integer type. The ranges of the partitions are as follows: <strong id="EN-US_TOPIC_0000001233510133__b588476720112736">ca_address_sk</strong> < 2450815, 2450815 <= <strong id="EN-US_TOPIC_0000001233510133__b1270317008112736">ca_address_sk</strong> < 2451179, 2451179 <= <strong id="EN-US_TOPIC_0000001233510133__b894704199112736">ca_address_sk</strong> < 2451544, 2451544 <= <strong id="EN-US_TOPIC_0000001233510133__b656451242112736">ca_address_sk</strong>.</p>
|
||
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001233510133__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>
|
||
<p id="EN-US_TOPIC_0000001233510133__p85801013113012">View the information of the partitioned table.</p>
|
||
<pre class="screen" id="EN-US_TOPIC_0000001233510133__screen5582149155818">SELECT relname, boundaries FROM pg_partition p where p.parentid='customer_address'::regclass ORDER BY 1;
|
||
relname | boundaries
|
||
------------------+------------
|
||
customer_address |
|
||
p1 | {2450815}
|
||
p2 | {2451179}
|
||
p3 | {2451544}
|
||
p4 | {NULL}
|
||
(5 rows)</pre>
|
||
<p id="EN-US_TOPIC_0000001233510133__p94031656124213">Query the number of rows in the <strong id="EN-US_TOPIC_0000001233510133__b1669706567112736">P1</strong> partition:</p>
|
||
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001233510133__screen57201645175211"><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">SELECT</span><span class="w"> </span><span class="k">count</span><span class="p">(</span><span class="o">*</span><span class="p">)</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">customer_address</span><span class="w"> </span><span class="n">PARTITION</span><span class="w"> </span><span class="p">(</span><span class="n">P1</span><span class="p">);</span>
|
||
<span class="k">SELECT</span><span class="w"> </span><span class="k">count</span><span class="p">(</span><span class="o">*</span><span class="p">)</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">customer_address</span><span class="w"> </span><span class="n">PARTITION</span><span class="w"> </span><span class="k">FOR</span><span class="w"> </span><span class="p">(</span><span class="mi">2450815</span><span class="p">);</span>
|
||
</pre></div></td></tr></table></div>
|
||
|
||
</div>
|
||
</li></ul>
|
||
</div>
|
||
<ul id="EN-US_TOPIC_0000001233510133__ul10330161105013"><li id="EN-US_TOPIC_0000001233510133__li55331834192215">Example 2: Use the <strong id="EN-US_TOPIC_0000001233510133__b878435686112736">START END</strong> syntax to create a column-store range partitioned table.<pre class="screen" id="EN-US_TOPIC_0000001233510133__screen15746191115254">CREATE TABLE customer_address_SE
|
||
(
|
||
ca_address_sk INTEGER NOT NULL ,
|
||
ca_address_id CHARACTER(16) NOT NULL ,
|
||
ca_street_number CHARACTER(10) ,
|
||
ca_street_name CHARACTER varying(60) ,
|
||
ca_street_type CHARACTER(15) ,
|
||
ca_suite_number CHARACTER(10)
|
||
)
|
||
WITH (ORIENTATION = COLUMN)
|
||
DISTRIBUTE BY HASH (ca_address_sk)
|
||
PARTITION BY RANGE(ca_address_sk)
|
||
(
|
||
PARTITION p1 START(1) END(1000) EVERY(200),
|
||
PARTITION p2 END(2000),
|
||
PARTITION p3 START(2000) END(5000)
|
||
);</pre>
|
||
<p id="EN-US_TOPIC_0000001233510133__p1698710426592">View the information of the partitioned table.</p>
|
||
<pre class="screen" id="EN-US_TOPIC_0000001233510133__screen0988164210598">SELECT relname, boundaries FROM pg_partition p where p.parentid='customer_address_SE'::regclass ORDER BY 1;
|
||
relname | boundaries
|
||
---------------------+------------
|
||
customer_address_se |
|
||
p1_0 | {1}
|
||
p1_1 | {201}
|
||
p1_2 | {401}
|
||
p1_3 | {601}
|
||
p1_4 | {801}
|
||
p1_5 | {1000}
|
||
p2 | {2000}
|
||
p3 | {5000}
|
||
(9 rows)</pre>
|
||
</li></ul>
|
||
<ul id="EN-US_TOPIC_0000001233510133__ul1583104444816"><li id="EN-US_TOPIC_0000001233510133__li51481639171616">Example 3: Create a list partitioned table with partition keys.<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001233510133__screen115498130366"><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></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">data_list</span>
|
||
<span class="p">(</span>
|
||
<span class="w"> </span><span class="n">id</span><span class="w"> </span><span class="nb">int</span><span class="p">,</span>
|
||
<span class="w"> </span><span class="k">time</span><span class="w"> </span><span class="nb">int</span><span class="p">,</span><span class="w"> </span>
|
||
<span class="w"> </span><span class="n">sarlay</span><span class="w"> </span><span class="nb">decimal</span><span class="p">(</span><span class="mi">12</span><span class="p">,</span><span class="mi">2</span><span class="p">)</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">LIST</span><span class="w"> </span><span class="p">(</span><span class="k">time</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="p">(</span><span class="mi">202209</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="p">(</span><span class="mi">202210</span><span class="p">,</span><span class="mi">202208</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="p">(</span><span class="mi">202211</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="p">(</span><span class="mi">202212</span><span class="p">),</span>
|
||
<span class="w"> </span><span class="n">PARTITION</span><span class="w"> </span><span class="n">P5</span><span class="w"> </span><span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="mi">202301</span><span class="p">)</span>
|
||
<span class="p">);</span>
|
||
</pre></div></td></tr></table></div>
|
||
|
||
</div>
|
||
</li><li id="EN-US_TOPIC_0000001233510133__li72564306344"><a name="EN-US_TOPIC_0000001233510133__li72564306344"></a><a name="li72564306344"></a>Example 4: Create list partitioned tables with partition keys.<div class="p" id="EN-US_TOPIC_0000001233510133__p2985185111351"><a name="EN-US_TOPIC_0000001233510133__li72564306344"></a><a name="li72564306344"></a>A partitioned table has two partition keys, <strong id="EN-US_TOPIC_0000001233510133__b160179674112736">period</strong> and <strong id="EN-US_TOPIC_0000001233510133__b1441851007112736">city</strong>.<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001233510133__screen873464912355"><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></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">sales_info</span>
|
||
<span class="p">(</span>
|
||
<span class="n">sale_time</span><span class="w"> </span><span class="n">timestamptz</span><span class="p">,</span>
|
||
<span class="k">period</span><span class="w"> </span><span class="nb">int</span><span class="p">,</span>
|
||
<span class="n">city</span><span class="w"> </span><span class="nb">text</span><span class="p">,</span>
|
||
<span class="n">price</span><span class="w"> </span><span class="nb">numeric</span><span class="p">(</span><span class="mi">10</span><span class="p">,</span><span class="mi">2</span><span class="p">),</span>
|
||
<span class="n">remark</span><span class="w"> </span><span class="n">varchar2</span><span class="p">(</span><span class="mi">100</span><span class="p">)</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="p">(</span><span class="n">sale_time</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">LIST</span><span class="w"> </span><span class="p">(</span><span class="k">period</span><span class="p">,</span><span class="w"> </span><span class="n">city</span><span class="p">)</span>
|
||
<span class="p">(</span>
|
||
<span class="n">PARTITION</span><span class="w"> </span><span class="n">north_2022</span><span class="w"> </span><span class="k">VALUES</span><span class="w"> </span><span class="p">((</span><span class="s1">'202201'</span><span class="p">,</span><span class="w"> </span><span class="s1">'north1'</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="s1">'202202'</span><span class="p">,</span><span class="w"> </span><span class="s1">'north2'</span><span class="p">)),</span>
|
||
<span class="n">PARTITION</span><span class="w"> </span><span class="n">south_2022</span><span class="w"> </span><span class="k">VALUES</span><span class="w"> </span><span class="p">((</span><span class="s1">'202201'</span><span class="p">,</span><span class="w"> </span><span class="s1">'south1'</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="s1">'202202'</span><span class="p">,</span><span class="w"> </span><span class="s1">'south2'</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="s1">'202203'</span><span class="p">,</span><span class="w"> </span><span class="s1">'south2'</span><span class="p">)),</span>
|
||
<span class="n">PARTITION</span><span class="w"> </span><span class="n">rest</span><span class="w"> </span><span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="k">DEFAULT</span><span class="p">)</span>
|
||
<span class="p">);</span>
|
||
</pre></div></td></tr></table></div>
|
||
|
||
</div>
|
||
</div>
|
||
</li><li id="EN-US_TOPIC_0000001233510133__li9517101103811"><a name="EN-US_TOPIC_0000001233510133__li9517101103811"></a><a name="li9517101103811"></a>Example 5: Create a partitioned table with automatic partition management but without specified partitions. Set <strong id="EN-US_TOPIC_0000001233510133__b1062149199112736">PERIOD</strong> to 1 day and the partition key to <strong id="EN-US_TOPIC_0000001233510133__b1340324508112736">time</strong>.<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001233510133__screen8517151103811"><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">time_part</span>
|
||
<span class="w"> </span><span class="p">(</span>
|
||
<span class="w"> </span><span class="n">id</span><span class="w"> </span><span class="nb">integer</span><span class="p">,</span>
|
||
<span class="w"> </span><span class="k">time</span><span class="w"> </span><span class="k">timestamp</span>
|
||
<span class="w"> </span><span class="p">)</span><span class="w"> </span><span class="k">with</span><span class="w"> </span><span class="p">(</span><span class="k">PERIOD</span><span class="o">=</span><span class="s1">'1 day'</span><span class="p">)</span>
|
||
<span class="w"> </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="k">time</span><span class="p">);</span>
|
||
</pre></div></td></tr></table></div>
|
||
|
||
</div>
|
||
<p id="EN-US_TOPIC_0000001233510133__p4518212388">Two default partitions are created during table creation. The boundary time of the first default partition is the start of the day later than the current time, that is, 2022-12-13 00:00:00. The boundary time of the second default partition is the boundary time of the first partition plus PERIOD, that is, 2022-12-13 00:00:00+1 day=2022-12-14 00:00:00.</p>
|
||
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001233510133__screen10518111193819"><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></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="n">now</span><span class="p">();</span>
|
||
<span class="w"> </span><span class="n">now</span>
|
||
<span class="c1">-------------------------------</span>
|
||
<span class="w"> </span><span class="mi">2022</span><span class="o">-</span><span class="mi">12</span><span class="o">-</span><span class="mi">12</span><span class="w"> </span><span class="mi">20</span><span class="p">:</span><span class="mi">41</span><span class="p">:</span><span class="mi">21</span><span class="p">.</span><span class="mi">603172</span><span class="o">+</span><span class="mi">08</span>
|
||
<span class="p">(</span><span class="mi">1</span><span class="w"> </span><span class="k">row</span><span class="p">)</span>
|
||
|
||
<span class="k">SELECT</span><span class="w"> </span><span class="n">relname</span><span class="p">,</span><span class="w"> </span><span class="n">boundaries</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">pg_partition</span><span class="w"> </span><span class="n">p</span><span class="w"> </span><span class="k">where</span><span class="w"> </span><span class="n">p</span><span class="p">.</span><span class="n">parentid</span><span class="o">=</span><span class="s1">'time_part'</span><span class="p">::</span><span class="n">regclass</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>
|
||
<span class="w"> </span><span class="n">relname</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">boundaries</span>
|
||
<span class="c1">----------------+-------------------------</span>
|
||
<span class="w"> </span><span class="n">default_part_1</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="err">{</span><span class="ss">"2022-12-13 00:00:00"</span><span class="err">}</span>
|
||
<span class="w"> </span><span class="n">default_part_2</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="err">{</span><span class="ss">"2022-12-14 00:00:00"</span><span class="err">}</span>
|
||
<span class="w"> </span><span class="n">time_part</span><span class="w"> </span><span class="o">|</span>
|
||
<span class="p">(</span><span class="mi">3</span><span class="w"> </span><span class="k">rows</span><span class="p">)</span>
|
||
</pre></div></td></tr></table></div>
|
||
|
||
</div>
|
||
</li><li id="EN-US_TOPIC_0000001233510133__li490415623919">Example 6: Run the following command to create a partitioned table with automatic partition management and specified partitions:<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001233510133__screen12558132405"><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></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">CPU</span><span class="p">(</span>
|
||
<span class="w"> </span><span class="n">id</span><span class="w"> </span><span class="nb">integer</span><span class="p">,</span>
|
||
<span class="w"> </span><span class="n">idle</span><span class="w"> </span><span class="nb">numeric</span><span class="p">,</span>
|
||
<span class="w"> </span><span class="n">IO</span><span class="w"> </span><span class="nb">numeric</span><span class="p">,</span>
|
||
<span class="w"> </span><span class="k">scope</span><span class="w"> </span><span class="nb">text</span><span class="p">,</span>
|
||
<span class="w"> </span><span class="n">IP</span><span class="w"> </span><span class="nb">text</span><span class="p">,</span>
|
||
<span class="w"> </span><span class="k">time</span><span class="w"> </span><span class="k">timestamp</span>
|
||
<span class="p">)</span><span class="w"> </span><span class="k">with</span><span class="w"> </span><span class="p">(</span><span class="n">TTL</span><span class="o">=</span><span class="s1">'7 days'</span><span class="p">,</span><span class="k">PERIOD</span><span class="o">=</span><span class="s1">'1 day'</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="k">time</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="s1">'2022-01-05 16:32:45'</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="s1">'2022-01-06 16:56:12'</span><span class="p">)</span>
|
||
<span class="p">);</span>
|
||
</pre></div></td></tr></table></div>
|
||
|
||
</div>
|
||
</li><li id="EN-US_TOPIC_0000001233510133__li711916711147">Example 7: Create a partitioned table <strong id="EN-US_TOPIC_0000001233510133__b17268856217">customer_address</strong> partitioned by month. The table has 13 partitions and the partition keys are dates.<div class="p" id="EN-US_TOPIC_0000001233510133__p453713421195">Create a partitioned table <strong id="EN-US_TOPIC_0000001233510133__b892214813376">customer_address</strong>.<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001233510133__screen110618551388"><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">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="p">,</span>
|
||
<span class="w"> </span><span class="n">ca_address_date</span><span class="w"> </span><span class="nb">date</span><span class="w"> </span><span class="k">NOT</span><span class="w"> </span><span class="k">NULL</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="w"> </span><span class="p">(</span><span class="n">ca_address_date</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">p202001</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="s1">'20200101'</span><span class="p">),</span>
|
||
<span class="w"> </span><span class="n">PARTITION</span><span class="w"> </span><span class="n">p202002</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="s1">'20200201'</span><span class="p">),</span>
|
||
<span class="w"> </span><span class="n">PARTITION</span><span class="w"> </span><span class="n">p202003</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="s1">'20200301'</span><span class="p">),</span>
|
||
<span class="w"> </span><span class="n">PARTITION</span><span class="w"> </span><span class="n">p202004</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="s1">'20200401'</span><span class="p">),</span>
|
||
<span class="w"> </span><span class="n">PARTITION</span><span class="w"> </span><span class="n">p202005</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="s1">'20200501'</span><span class="p">),</span>
|
||
<span class="w"> </span><span class="n">PARTITION</span><span class="w"> </span><span class="n">p202006</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="s1">'20200601'</span><span class="p">),</span>
|
||
<span class="w"> </span><span class="n">PARTITION</span><span class="w"> </span><span class="n">p202007</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="s1">'20200701'</span><span class="p">),</span>
|
||
<span class="w"> </span><span class="n">PARTITION</span><span class="w"> </span><span class="n">p202008</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="s1">'20200801'</span><span class="p">),</span>
|
||
<span class="w"> </span><span class="n">PARTITION</span><span class="w"> </span><span class="n">p202009</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="s1">'20200901'</span><span class="p">),</span>
|
||
<span class="w"> </span><span class="n">PARTITION</span><span class="w"> </span><span class="n">p202010</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="s1">'20201001'</span><span class="p">),</span>
|
||
<span class="w"> </span><span class="n">PARTITION</span><span class="w"> </span><span class="n">p202011</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="s1">'20201101'</span><span class="p">),</span>
|
||
<span class="w"> </span><span class="n">PARTITION</span><span class="w"> </span><span class="n">p202012</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="s1">'20201201'</span><span class="p">),</span>
|
||
<span class="w"> </span><span class="n">PARTITION</span><span class="w"> </span><span class="n">p202013</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_0000001233510133__p15862174681618">Insert data:</p>
|
||
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001233510133__screen10909114812413"><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">INSERT</span><span class="w"> </span><span class="k">INTO</span><span class="w"> </span><span class="n">customer_address</span><span class="w"> </span><span class="k">values</span><span class="p">(</span><span class="s1">'1'</span><span class="p">,</span><span class="s1">'20200215'</span><span class="p">);</span>
|
||
<span class="k">INSERT</span><span class="w"> </span><span class="k">INTO</span><span class="w"> </span><span class="n">customer_address</span><span class="w"> </span><span class="k">values</span><span class="p">(</span><span class="s1">'7'</span><span class="p">,</span><span class="s1">'20200805'</span><span class="p">);</span>
|
||
<span class="k">INSERT</span><span class="w"> </span><span class="k">INTO</span><span class="w"> </span><span class="n">customer_address</span><span class="w"> </span><span class="k">values</span><span class="p">(</span><span class="s1">'9'</span><span class="p">,</span><span class="s1">'20201111'</span><span class="p">);</span>
|
||
<span class="k">INSERT</span><span class="w"> </span><span class="k">INTO</span><span class="w"> </span><span class="n">customer_address</span><span class="w"> </span><span class="k">values</span><span class="p">(</span><span class="s1">'4'</span><span class="p">,</span><span class="s1">'20201231'</span><span class="p">);</span>
|
||
</pre></div></td></tr></table></div>
|
||
|
||
</div>
|
||
<p id="EN-US_TOPIC_0000001233510133__p3863174614165">Query a partition:</p>
|
||
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001233510133__screen1350517511253"><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">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">customer_address</span><span class="w"> </span><span class="n">PARTITION</span><span class="p">(</span><span class="n">p202009</span><span class="p">);</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="n">ca_address_date</span>
|
||
<span class="c1">---------------+---------------------</span>
|
||
<span class="w"> </span><span class="mi">7</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">2020</span><span class="o">-</span><span class="mi">08</span><span class="o">-</span><span class="mi">05</span><span class="w"> </span><span class="mi">00</span><span class="p">:</span><span class="mi">00</span><span class="p">:</span><span class="mi">00</span>
|
||
<span class="p">(</span><span class="mi">1</span><span class="w"> </span><span class="k">row</span><span class="p">)</span>
|
||
</pre></div></td></tr></table></div>
|
||
|
||
</div>
|
||
</li><li id="EN-US_TOPIC_0000001233510133__li19637816192012">Example 8: Use <strong id="EN-US_TOPIC_0000001233510133__b1380492012216">START END</strong> to create a partitioned table with multiple partitions at a time.<ul id="EN-US_TOPIC_0000001233510133__ul33671718192116"><li id="EN-US_TOPIC_0000001233510133__li1534775517211">Create a partitioned table <strong id="EN-US_TOPIC_0000001233510133__b6861241482">day_part</strong>. Each day is a partition, and the partition key is a date.<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001233510133__screen1188712653813"><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">CREATE</span><span class="w"> </span><span class="k">table</span><span class="w"> </span><span class="n">day_part</span><span class="p">(</span><span class="n">id</span><span class="w"> </span><span class="nb">int</span><span class="p">,</span><span class="n">d_time</span><span class="w"> </span><span class="nb">date</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="w"> </span><span class="p">(</span><span class="n">id</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="w"> </span><span class="p">(</span><span class="n">d_time</span><span class="p">)</span>
|
||
<span class="p">(</span><span class="n">PARTITION</span><span class="w"> </span><span class="n">p1</span><span class="w"> </span><span class="k">START</span><span class="p">(</span><span class="s1">'2022-01-01'</span><span class="p">)</span><span class="w"> </span><span class="k">END</span><span class="p">(</span><span class="s1">'2022-01-31'</span><span class="p">)</span><span class="w"> </span><span class="k">EVERY</span><span class="p">(</span><span class="nb">interval</span><span class="w"> </span><span class="s1">'1 day'</span><span class="p">));</span>
|
||
<span class="k">ALTER</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">day_part</span><span class="w"> </span><span class="k">ADD</span><span class="w"> </span><span class="n">PARTITION</span><span class="w"> </span><span class="n">pmax</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="w"> </span><span class="p">(</span><span class="k">maxvalue</span><span class="p">);</span>
|
||
</pre></div></td></tr></table></div>
|
||
|
||
</div>
|
||
</li><li id="EN-US_TOPIC_0000001233510133__li10346164516215">Create a partitioned table <strong id="EN-US_TOPIC_0000001233510133__b14148105717487">week_part</strong>, seven days as a partition, and the partition key is a date.<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001233510133__screen690153917383"><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">CREATE</span><span class="w"> </span><span class="k">table</span><span class="w"> </span><span class="n">week_part</span><span class="p">(</span><span class="n">id</span><span class="w"> </span><span class="nb">int</span><span class="p">,</span><span class="n">w_time</span><span class="w"> </span><span class="nb">date</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">id</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="w"> </span><span class="p">(</span><span class="n">w_time</span><span class="p">)</span><span class="w"> </span>
|
||
<span class="p">(</span><span class="n">PARTITION</span><span class="w"> </span><span class="n">p1</span><span class="w"> </span><span class="k">START</span><span class="p">(</span><span class="s1">'2021-01-01'</span><span class="p">)</span><span class="w"> </span><span class="k">END</span><span class="p">(</span><span class="s1">'2022-01-01'</span><span class="p">)</span><span class="w"> </span><span class="k">EVERY</span><span class="p">(</span><span class="nb">interval</span><span class="w"> </span><span class="s1">'7 day'</span><span class="p">));</span>
|
||
<span class="k">ALTER</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">week_part</span><span class="w"> </span><span class="k">ADD</span><span class="w"> </span><span class="n">PARTITION</span><span class="w"> </span><span class="n">pmax</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="w"> </span><span class="p">(</span><span class="k">maxvalue</span><span class="p">);</span>
|
||
</pre></div></td></tr></table></div>
|
||
|
||
</div>
|
||
</li><li id="EN-US_TOPIC_0000001233510133__li6407164912115">Create the partition table <strong id="EN-US_TOPIC_0000001233510133__b16978027519">month_part</strong>, each month as a partition, and the partition key is a date.<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001233510133__screen2321151153817"><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">CREATE</span><span class="w"> </span><span class="k">table</span><span class="w"> </span><span class="n">month_part</span><span class="p">(</span><span class="n">id</span><span class="w"> </span><span class="nb">int</span><span class="p">,</span><span class="n">m_time</span><span class="w"> </span><span class="nb">date</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">id</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="w"> </span><span class="p">(</span><span class="n">m_time</span><span class="p">)</span>
|
||
<span class="p">(</span><span class="n">PARTITION</span><span class="w"> </span><span class="n">p1</span><span class="w"> </span><span class="k">START</span><span class="p">(</span><span class="s1">'2021-01-01'</span><span class="p">)</span><span class="w"> </span><span class="k">END</span><span class="p">(</span><span class="s1">'2022-01-01'</span><span class="p">)</span><span class="w"> </span><span class="k">EVERY</span><span class="p">(</span><span class="nb">interval</span><span class="w"> </span><span class="s1">'1 month'</span><span class="p">));</span>
|
||
<span class="k">ALTER</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">month_part</span><span class="w"> </span><span class="k">ADD</span><span class="w"> </span><span class="n">PARTITION</span><span class="w"> </span><span class="n">pmax</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="w"> </span><span class="p">(</span><span class="k">maxvalue</span><span class="p">);</span>
|
||
</pre></div></td></tr></table></div>
|
||
|
||
</div>
|
||
</li></ul>
|
||
</li><li id="EN-US_TOPIC_0000001233510133__li21181826234">Example 9: Create a table for hot and cold data.<p id="EN-US_TOPIC_0000001233510133__p2693142864"><a name="EN-US_TOPIC_0000001233510133__li21181826234"></a><a name="li21181826234"></a>Only a column-store partitioned table is supported. Use the default OBS tablespace. Set LMT to 30 for cold and hot switchover rules.</p>
|
||
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001233510133__screen193506546264"><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></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">cold_hot_table</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">cold_hot_table</span>
|
||
<span class="p">(</span>
|
||
<span class="w"> </span><span class="n">W_WAREHOUSE_ID</span><span class="w"> </span><span class="nb">CHAR</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="p">,</span>
|
||
<span class="w"> </span><span class="n">W_WAREHOUSE_NAME</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">W_STREET_NUMBER</span><span class="w"> </span><span class="nb">CHAR</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">W_STREET_NAME</span><span class="w"> </span><span class="nb">VARCHAR</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">W_STREET_ID</span><span class="w"> </span><span class="nb">CHAR</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">W_SUITE_NUMBER</span><span class="w"> </span><span class="nb">CHAR</span><span class="p">(</span><span class="mi">10</span><span class="p">)</span><span class="w"> </span>
|
||
<span class="p">)</span>
|
||
<span class="k">WITH</span><span class="w"> </span><span class="p">(</span><span class="n">ORIENTATION</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">COLUMN</span><span class="p">,</span><span class="w"> </span><span class="n">storage_policy</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s1">'LMT:30'</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">W_WAREHOUSE_ID</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">W_STREET_ID</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">100000</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">200000</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">300000</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><span class="n">ENABLE</span><span class="w"> </span><span class="k">ROW</span><span class="w"> </span><span class="n">MOVEMENT</span><span class="p">;</span>
|
||
</pre></div></td></tr></table></div>
|
||
|
||
</div>
|
||
</li></ul>
|
||
<div class="section" id="EN-US_TOPIC_0000001233510133__sdd1bb49c54fe48ffb123ee917092540a"><h4 class="sectiontitle">Helpful Links</h4><p id="EN-US_TOPIC_0000001233510133__ab7a62aa4283e43558bbf77c097ffa194"><a href="dws_06_0143.html">ALTER TABLE PARTITION</a>, <a href="dws_06_0208.html">DROP TABLE</a></p>
|
||
</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>
|
||
|