forked from docs/doc-exports
Reviewed-by: Hasko, Vladimir <vladimir.hasko@t-systems.com> 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>
95 lines
23 KiB
HTML
95 lines
23 KiB
HTML
<a name="EN-US_TOPIC_0000001772536524"></a><a name="EN-US_TOPIC_0000001772536524"></a>
|
|
|
|
<h1 class="topictitle1">CHECK Constraint</h1>
|
|
<div id="body8662426"><p id="EN-US_TOPIC_0000001772536524__en-us_topic_0000001657865570_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_0000001772536524__en-us_topic_0000001657865570_en-us_topic_0000001398233664_b13185453831616">TRUE</strong> or <strong id="EN-US_TOPIC_0000001772536524__en-us_topic_0000001657865570_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_0000001772536524__en-us_topic_0000001657865570_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_0000001772536524__en-us_topic_0000001657865570_en-us_topic_0000001398233664_section52132315319"><h4 class="sectiontitle">CREATE TABLE CHECK</h4><p id="EN-US_TOPIC_0000001772536524__en-us_topic_0000001657865570_en-us_topic_0000001398233664_p2390203714319">In GaussDB(DWS), when creating a table, you can place the CHECK constraint of a column after the column field or below the column field. The syntax is as follows: CHECK (column namel > 0), To name the CHECK constraint or define the CHECK constraint of multiple columns, use the <strong id="EN-US_TOPIC_0000001772536524__en-us_topic_0000001657865570_en-us_topic_0000001398233664_b19220104341412">CONSTRAINT chk_name CHECK (column_namw1 >0 AND column_name2='x>x")</strong>.</p>
|
|
<div class="caution" id="EN-US_TOPIC_0000001772536524__en-us_topic_0000001657865570_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_0000001772536524__en-us_topic_0000001657865570_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_0000001772536524__en-us_topic_0000001657865570_en-us_topic_0000001398233664_p712835684417"><strong id="EN-US_TOPIC_0000001772536524__en-us_topic_0000001657865570_en-us_topic_0000001398233664_b11771161610455">Input</strong></p>
|
|
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001772536524__en-us_topic_0000001657865570_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_0000001772536524__en-us_topic_0000001657865570_en-us_topic_0000001398233664_p981414459"><strong id="EN-US_TOPIC_0000001772536524__en-us_topic_0000001657865570_en-us_topic_0000001398233664_b843718195457">Output</strong></p>
|
|
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001772536524__en-us_topic_0000001657865570_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_0000001772536524__en-us_topic_0000001657865570_en-us_topic_0000001398233664_section2852757739"><h4 class="sectiontitle">ALTER TABLE CHECK</h4><p id="EN-US_TOPIC_0000001772536524__en-us_topic_0000001657865570_en-us_topic_0000001398233664_p1325413017411">When you perform operations on table columns, you can use the <strong id="EN-US_TOPIC_0000001772536524__en-us_topic_0000001657865570_en-us_topic_0000001398233664_b1069425412147">ALTER TABLE </strong><em id="EN-US_TOPIC_0000001772536524__en-us_topic_0000001657865570_en-us_topic_0000001398233664_i169412547142">table_name</em> <strong id="EN-US_TOPIC_0000001772536524__en-us_topic_0000001657865570_en-us_topic_0000001398233664_b18694185411142">ADD CHECK</strong><strong id="EN-US_TOPIC_0000001772536524__en-us_topic_0000001657865570_en-us_topic_0000001398233664_b1069485411144">(<</strong><em id="EN-US_TOPIC_0000001772536524__en-us_topic_0000001657865570_en-us_topic_0000001398233664_i5695115421413">check_constraint</em> <strong id="EN-US_TOPIC_0000001772536524__en-us_topic_0000001657865570_en-us_topic_0000001398233664_b0695155417147">>)</strong> syntax to create a CHECK constraint on a column. To name a CHECK constraint and define CHECK constraints for multiple columns, run the <strong id="EN-US_TOPIC_0000001772536524__en-us_topic_0000001657865570_en-us_topic_0000001398233664_b4695115415141">ALTER TABLE</strong> <em id="EN-US_TOPIC_0000001772536524__en-us_topic_0000001657865570_en-us_topic_0000001398233664_i136951547145">table_name</em> <strong id="EN-US_TOPIC_0000001772536524__en-us_topic_0000001657865570_en-us_topic_0000001398233664_b869575431417">ADD CONSTRAINT</strong><strong id="EN-US_TOPIC_0000001772536524__en-us_topic_0000001657865570_en-us_topic_0000001398233664_b969585461410"> <</strong> <em id="EN-US_TOPIC_0000001772536524__en-us_topic_0000001657865570_en-us_topic_0000001398233664_i1169625420146">check_constraint_name</em><strong id="EN-US_TOPIC_0000001772536524__en-us_topic_0000001657865570_en-us_topic_0000001398233664_b18696165411144"> > CHECK(<</strong> <em id="EN-US_TOPIC_0000001772536524__en-us_topic_0000001657865570_en-us_topic_0000001398233664_i569613541144">check_constraint</em><strong id="EN-US_TOPIC_0000001772536524__en-us_topic_0000001657865570_en-us_topic_0000001398233664_b1469675421417"> >)</strong> syntax.</p>
|
|
<p id="EN-US_TOPIC_0000001772536524__en-us_topic_0000001657865570_en-us_topic_0000001398233664_p46401768376"><strong id="EN-US_TOPIC_0000001772536524__en-us_topic_0000001657865570_en-us_topic_0000001398233664_b1664013673712">Input</strong></p>
|
|
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001772536524__en-us_topic_0000001657865570_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_0000001772536524__en-us_topic_0000001657865570_en-us_topic_0000001398233664_p186401060379"><strong id="EN-US_TOPIC_0000001772536524__en-us_topic_0000001657865570_en-us_topic_0000001398233664_b664012693717">Output</strong></p>
|
|
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001772536524__en-us_topic_0000001657865570_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>
|
|
|