forked from docs/doc-exports
Reviewed-by: Pruthi, Vineet <vineet.pruthi@t-systems.com> Co-authored-by: luhuayi <luhuayi@huawei.com> Co-committed-by: luhuayi <luhuayi@huawei.com>
92 lines
22 KiB
HTML
92 lines
22 KiB
HTML
<a name="EN-US_TOPIC_0000001813438988"></a><a name="EN-US_TOPIC_0000001813438988"></a>
|
|
|
|
<h1 class="topictitle1">CHECK Constraint</h1>
|
|
<div id="body32001227"><p id="EN-US_TOPIC_0000001813438988__en-us_topic_0000001398233664_p28791143135112">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_0000001813438988__en-us_topic_0000001398233664_b13185453831616">TRUE</strong> or <strong id="EN-US_TOPIC_0000001813438988__en-us_topic_0000001398233664_b56781448731616">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_0000001813438988__en-us_topic_0000001398233664_p3597193116516">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>
|
|
<div class="section" id="EN-US_TOPIC_0000001813438988__en-us_topic_0000001398233664_section52132315319"><h4 class="sectiontitle">CREATE TABLE CHECK</h4><p id="EN-US_TOPIC_0000001813438988__en-us_topic_0000001398233664_p2390203714319">When creating a table in GaussDB(DWS), you can place the <strong id="EN-US_TOPIC_0000001813438988__en-us_topic_0000001398233664_b424634744514">CHECK</strong> constraint of a column after the column field or below the column field. The syntax is as follows: CHECK (column name > 0), To name the <strong id="EN-US_TOPIC_0000001813438988__en-us_topic_0000001398233664_b162471047164519">CHECK</strong> constraint or define the <strong id="EN-US_TOPIC_0000001813438988__en-us_topic_0000001398233664_b11248174711454">CHECK</strong> constraint of multiple columns, use the <strong id="EN-US_TOPIC_0000001813438988__en-us_topic_0000001398233664_b17248184784513">CONSTRAINT chk_name CHECK (column_namw1 >0 AND column_name2='x>x")</strong> syntax.</p>
|
|
<div class="caution" id="EN-US_TOPIC_0000001813438988__en-us_topic_0000001398233664_en-us_topic_0214164669_note4707640687"><span class="cautiontitle"><img src="public_sys-resources/caution_3.0-en-us.png"> </span><div class="cautionbody"><p id="EN-US_TOPIC_0000001813438988__en-us_topic_0000001398233664_en-us_topic_0214164669_p71171916121011">The CHECK constraint is also removed if the table is removed.</p>
|
|
</div></div>
|
|
</div>
|
|
<p id="EN-US_TOPIC_0000001813438988__en-us_topic_0000001398233664_p712835684417"><strong id="EN-US_TOPIC_0000001813438988__en-us_topic_0000001398233664_b11771161610455">Input</strong></p>
|
|
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001813438988__en-us_topic_0000001398233664_screen964739124513"><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></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="o">`</span><span class="n">t1</span><span class="o">`</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="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="n">t1</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">int</span><span class="p">(</span><span class="mi">25</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="k">primary</span><span class="w"> </span><span class="k">key</span><span class="w"> </span><span class="k">check</span><span class="w"> </span><span class="p">(</span><span class="n">id</span><span class="w"> </span><span class="o">></span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="k">and</span><span class="w"> </span><span class="n">id</span><span class="w"> </span><span class="o"><</span><span class="w"> </span><span class="mi">100</span><span class="p">),</span>
|
|
<span class="n">city</span><span class="w"> </span><span class="nb">varchar</span><span class="p">(</span><span class="mi">255</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="k">unique</span><span class="w"> </span><span class="k">check</span><span class="w"> </span><span class="p">(</span><span class="n">city</span><span class="o">=</span><span class="s1">'city 1'</span><span class="w"> </span><span class="k">or</span><span class="w"> </span><span class="n">city</span><span class="o">=</span><span class="s1">'city 2'</span><span class="w"> </span><span class="k">or</span><span class="w"> </span><span class="n">city</span><span class="o">=</span><span class="s1">'city 3'</span><span class="p">),</span>
|
|
<span class="w"> </span><span class="n">population</span><span class="w"> </span><span class="nb">int</span><span class="p">(</span><span class="mi">25</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="k">constraint</span><span class="w"> </span><span class="n">t1_1</span><span class="w"> </span><span class="k">check</span><span class="w"> </span><span class="p">(</span><span class="n">population</span><span class="o">></span><span class="mi">0</span><span class="w"> </span><span class="k">and</span><span class="w"> </span><span class="n">population</span><span class="o"><</span><span class="mi">10000</span><span class="p">)</span>
|
|
<span class="p">)</span><span class="w"> </span><span class="p">;</span>
|
|
</pre></div></td></tr></table></div>
|
|
</div>
|
|
<p id="EN-US_TOPIC_0000001813438988__en-us_topic_0000001398233664_p981414459"><strong id="EN-US_TOPIC_0000001813438988__en-us_topic_0000001398233664_b843718195457">Output</strong></p>
|
|
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001813438988__en-us_topic_0000001398233664_screen1156413104513"><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></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="ss">"public"</span><span class="p">.</span><span class="ss">"t1"</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="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="ss">"public"</span><span class="p">.</span><span class="ss">"t1"</span><span class="w"> </span><span class="p">(</span>
|
|
<span class="w"> </span><span class="ss">"id"</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="k">PRIMARY</span><span class="w"> </span><span class="k">KEY</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">id</span><span class="w"> </span><span class="o">></span><span class="w"> </span><span class="mi">1</span>
|
|
<span class="w"> </span><span class="k">and</span><span class="w"> </span><span class="n">id</span><span class="w"> </span><span class="o"><</span><span class="w"> </span><span class="mi">100</span>
|
|
<span class="w"> </span><span class="p">),</span>
|
|
<span class="w"> </span><span class="ss">"city"</span><span class="w"> </span><span class="nb">VARCHAR</span><span class="p">(</span><span class="mi">1020</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="k">CHECK</span><span class="w"> </span><span class="p">(</span>
|
|
<span class="n">city</span><span class="w"> </span><span class="o">=</span><span class="s1">'City 1'</span>
|
|
<span class="k">or</span><span class="w"> </span><span class="n">city</span><span class="w"> </span><span class="o">=</span><span class="s1">'City 2'</span>
|
|
<span class="k">or</span><span class="w"> </span><span class="n">city</span><span class="w"> </span><span class="o">=</span><span class="s1">'City 3'</span>
|
|
<span class="w"> </span><span class="p">),</span>
|
|
<span class="w"> </span><span class="ss">"population"</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="k">CONSTRAINT</span><span class="w"> </span><span class="n">t1_1</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">population</span><span class="w"> </span><span class="o">></span><span class="w"> </span><span class="mi">0</span>
|
|
<span class="w"> </span><span class="k">and</span><span class="w"> </span><span class="n">population</span><span class="w"> </span><span class="o"><</span><span class="w"> </span><span class="mi">10000</span>
|
|
<span class="w"> </span><span class="p">)</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">ORIENTATION</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">ROW</span><span class="p">,</span><span class="w"> </span><span class="n">COMPRESSION</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">NO</span><span class="p">)</span><span class="w"> </span><span class="n">NOCOMPRESS</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="ss">"id"</span><span class="p">);</span>
|
|
</pre></div></td></tr></table></div>
|
|
</div>
|
|
<div class="section" id="EN-US_TOPIC_0000001813438988__en-us_topic_0000001398233664_section2852757739"><h4 class="sectiontitle">ALTER TABLE CHECK</h4><p id="EN-US_TOPIC_0000001813438988__en-us_topic_0000001398233664_p14511817165719">When you perform operations on table columns, you can have or have no naming constraint. To create a CHECK constraint in a column, use the <strong id="EN-US_TOPIC_0000001813438988__en-us_topic_0000001398233664_b171441417104812">ALTER TABLE</strong> <em id="EN-US_TOPIC_0000001813438988__en-us_topic_0000001398233664_i268142418482">Table name</em> <strong id="EN-US_TOPIC_0000001813438988__en-us_topic_0000001398233664_b1829072919489">ADD CHECK (<</strong><em id="EN-US_TOPIC_0000001813438988__en-us_topic_0000001398233664_i976544094817">Check constraint</em><strong id="EN-US_TOPIC_0000001813438988__en-us_topic_0000001398233664_b750493715488">>);</strong> syntax.</p>
|
|
<p id="EN-US_TOPIC_0000001813438988__en-us_topic_0000001398233664_p1325413017411">To name a <strong id="EN-US_TOPIC_0000001813438988__en-us_topic_0000001398233664_b645094710482">CHECK</strong> constraint and define it for multiple columns, use the <strong id="EN-US_TOPIC_0000001813438988__en-us_topic_0000001398233664_b136116820498">ALTER TABLE</strong> <em id="EN-US_TOPIC_0000001813438988__en-us_topic_0000001398233664_i9856314104918">Table name</em> <strong id="EN-US_TOPIC_0000001813438988__en-us_topic_0000001398233664_b885121911492">ADD CONSTRAINT <</strong><em id="EN-US_TOPIC_0000001813438988__en-us_topic_0000001398233664_i11927183618496">Name of the check constraint</em>> <strong id="EN-US_TOPIC_0000001813438988__en-us_topic_0000001398233664_b18327955154919">CHECK(<</strong><em id="EN-US_TOPIC_0000001813438988__en-us_topic_0000001398233664_i114771861507">Check constraint</em><strong id="EN-US_TOPIC_0000001813438988__en-us_topic_0000001398233664_b118191205018">>);</strong> syntax.</p>
|
|
<p id="EN-US_TOPIC_0000001813438988__en-us_topic_0000001398233664_p46401768376"><strong id="EN-US_TOPIC_0000001813438988__en-us_topic_0000001398233664_b1664013673712">Input</strong></p>
|
|
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001813438988__en-us_topic_0000001398233664_screen364015611376"><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">ALTER</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">t1</span><span class="w"> </span><span class="k">add</span><span class="w"> </span><span class="k">check</span><span class="w"> </span><span class="p">(</span><span class="n">id</span><span class="o">></span><span class="mi">1</span><span class="w"> </span><span class="k">and</span><span class="w"> </span><span class="n">id</span><span class="w"> </span><span class="o">></span><span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="k">and</span><span class="w"> </span><span class="n">id</span><span class="w"> </span><span class="o"><</span><span class="w"> </span><span class="mi">100</span><span class="w"> </span><span class="k">or</span><span class="w"> </span><span class="n">id</span><span class="w"> </span><span class="o">=</span><span class="mi">50</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">student</span><span class="w"> </span><span class="k">add</span><span class="w"> </span><span class="k">constraint</span><span class="w"> </span><span class="n">check02</span><span class="w"> </span><span class="k">check</span><span class="w"> </span><span class="p">(</span><span class="n">id</span><span class="w"> </span><span class="o">></span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="k">and</span><span class="w"> </span><span class="k">class</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s1">'3'</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">t1</span><span class="w"> </span><span class="k">add</span><span class="w"> </span><span class="k">check</span><span class="w"> </span><span class="p">(</span><span class="k">class</span><span class="o">=</span><span class="mi">1</span><span class="w"> </span><span class="k">or</span><span class="w"> </span><span class="k">class</span><span class="w"> </span><span class="o">=</span><span class="mi">2</span><span class="w"> </span><span class="k">or</span><span class="w"> </span><span class="k">class</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">3</span><span class="w"> </span><span class="k">or</span><span class="w"> </span><span class="k">class</span><span class="o">=</span><span class="mi">4</span><span class="w"> </span><span class="k">or</span><span class="w"> </span><span class="k">class</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">5</span><span class="w"> </span><span class="k">or</span><span class="w"> </span><span class="k">class</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">6</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">t1</span><span class="w"> </span><span class="k">add</span><span class="w"> </span><span class="k">check</span><span class="w"> </span><span class="p">(</span><span class="n">city</span><span class="o">=</span><span class="s1">'city 1'</span><span class="w"> </span><span class="k">or</span><span class="w"> </span><span class="n">city</span><span class="o">=</span><span class="s1">'city 2'</span><span class="w"> </span><span class="k">or</span><span class="w"> </span><span class="n">city</span><span class="o">=</span><span class="s1">'city 3'</span><span class="p">);</span>
|
|
</pre></div></td></tr></table></div>
|
|
</div>
|
|
<p id="EN-US_TOPIC_0000001813438988__en-us_topic_0000001398233664_p186401060379"><strong id="EN-US_TOPIC_0000001813438988__en-us_topic_0000001398233664_b664012693717">Output</strong></p>
|
|
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001813438988__en-us_topic_0000001398233664_screen96401763378"><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">ALTER</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="ss">"public"</span><span class="p">.</span><span class="ss">"t1"</span><span class="w"> </span><span class="k">ADD</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">id</span><span class="w"> </span><span class="o">></span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="k">and</span><span class="w"> </span><span class="n">id</span><span class="w"> </span><span class="o">></span><span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="k">and</span><span class="w"> </span><span class="n">id</span><span class="w"> </span><span class="o"><</span><span class="w"> </span><span class="mi">100</span><span class="w"> </span><span class="k">or</span><span class="w"> </span><span class="n">id</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">50</span><span class="w"> </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="ss">"public"</span><span class="p">.</span><span class="ss">"student"</span><span class="w"> </span><span class="k">ADD</span><span class="w"> </span><span class="k">CONSTRAINT</span><span class="w"> </span><span class="n">check02</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">id</span><span class="w"> </span><span class="o">></span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="k">and</span><span class="w"> </span><span class="k">class</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s1">'3'</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="ss">"public"</span><span class="p">.</span><span class="ss">"t1"</span><span class="w"> </span><span class="k">ADD</span><span class="w"> </span><span class="k">CHECK</span><span class="w"> </span><span class="p">(</span><span class="w"> </span><span class="k">class</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="k">or</span><span class="w"> </span><span class="k">class</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="k">or</span><span class="w"> </span><span class="k">class</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">3</span><span class="w"> </span><span class="k">or</span><span class="w"> </span><span class="k">class</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">4</span><span class="w"> </span><span class="k">or</span><span class="w"> </span><span class="k">class</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">5</span><span class="w"> </span><span class="k">or</span><span class="w"> </span><span class="k">class</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">6</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="ss">"public"</span><span class="p">.</span><span class="ss">"t1"</span><span class="w"> </span><span class="k">ADD</span><span class="w"> </span><span class="k">CHECK</span><span class="w"> </span><span class="p">(</span><span class="n">city</span><span class="w"> </span><span class="o">=</span><span class="s1">'City 1'</span><span class="w"> </span><span class="k">or</span><span class="w"> </span><span class="n">city</span><span class="w"> </span><span class="o">=</span><span class="s1">' City 2'</span><span class="w"> </span><span class="k">or</span><span class="w"> </span><span class="n">city</span><span class="w"> </span><span class="o">=</span><span class="s1">' City 3'</span><span class="p">);</span>
|
|
</pre></div></td></tr></table></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div>
|
|
<div class="familylinks">
|
|
<div class="parentlink"><strong>Parent topic:</strong> <a href="dws_16_0119.html">Table (Optional Parameters and Operations)</a></div>
|
|
</div>
|
|
</div>
|
|
|