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>
83 lines
13 KiB
HTML
83 lines
13 KiB
HTML
<a name="EN-US_TOPIC_0000001188110588"></a><a name="EN-US_TOPIC_0000001188110588"></a>
|
|
|
|
<h1 class="topictitle1">START TRANSACTION</h1>
|
|
<div id="body8662426"><div class="section" id="EN-US_TOPIC_0000001188110588__sd500584b57584500ba4b2995ab66827a"><h4 class="sectiontitle">Function</h4><p id="EN-US_TOPIC_0000001188110588__ae13fdcc4c5db410b8871ec303d1ab728"><strong id="EN-US_TOPIC_0000001188110588__b84235270619480">START TRANSACTION</strong> starts a transaction. If the isolation level, read/write mode, or deferrable mode is specified, a new transaction will have those characteristics. You can also specify them using <a href="dws_06_0264.html">SET TRANSACTION</a>.</p>
|
|
</div>
|
|
<div class="section" id="EN-US_TOPIC_0000001188110588__sd4f59c38b4d74408a0867ded9be505e2"><h4 class="sectiontitle">Precautions</h4><p id="EN-US_TOPIC_0000001188110588__ad647438d587f44cf898ae5dd57af215e">None</p>
|
|
</div>
|
|
<div class="section" id="EN-US_TOPIC_0000001188110588__se75363bf1a3c4f82bea9480fcc0b7b0c"><h4 class="sectiontitle">Syntax</h4><p id="EN-US_TOPIC_0000001188110588__a1cf4e143f46446b6b37f85eba8685676">Format 1: START TRANSACTION</p>
|
|
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001188110588__sf9b8ba10a80540b1bcac3d677dce946d"><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">START</span><span class="w"> </span><span class="k">TRANSACTION</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="w"> </span><span class="k">ISOLATION</span><span class="w"> </span><span class="k">LEVEL</span><span class="w"> </span><span class="err">{</span><span class="w"> </span><span class="k">READ</span><span class="w"> </span><span class="k">COMMITTED</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="k">READ</span><span class="w"> </span><span class="k">UNCOMMITTED</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="k">SERIALIZABLE</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="k">REPEATABLE</span><span class="w"> </span><span class="k">READ</span><span class="w"> </span><span class="err">}</span>
|
|
<span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="err">{</span><span class="w"> </span><span class="k">READ</span><span class="w"> </span><span class="k">WRITE</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="k">READ</span><span class="w"> </span><span class="k">ONLY</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="w"> </span><span class="p">];</span>
|
|
</pre></div></td></tr></table></div>
|
|
|
|
</div>
|
|
<p id="EN-US_TOPIC_0000001188110588__en-us_topic_0059777519_p10887162717">Format 2: BEGIN</p>
|
|
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001188110588__se3af4854c07546fd85cf1fc607e3c996"><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">BEGIN</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="k">WORK</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="k">TRANSACTION</span><span class="w"> </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="w"> </span><span class="k">ISOLATION</span><span class="w"> </span><span class="k">LEVEL</span><span class="w"> </span><span class="err">{</span><span class="w"> </span><span class="k">READ</span><span class="w"> </span><span class="k">COMMITTED</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="k">READ</span><span class="w"> </span><span class="k">UNCOMMITTED</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="k">SERIALIZABLE</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="k">REPEATABLE</span><span class="w"> </span><span class="k">READ</span><span class="w"> </span><span class="err">}</span>
|
|
<span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="err">{</span><span class="w"> </span><span class="k">READ</span><span class="w"> </span><span class="k">WRITE</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="k">READ</span><span class="w"> </span><span class="k">ONLY</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="w"> </span><span class="p">];</span>
|
|
</pre></div></td></tr></table></div>
|
|
|
|
</div>
|
|
</div>
|
|
<div class="section" id="EN-US_TOPIC_0000001188110588__s75a837a93fbf425a82cfa6717b07bde4"><h4 class="sectiontitle">Parameter Description</h4><ul id="EN-US_TOPIC_0000001188110588__u98ff3d7bd0f7464585a702fcffa1b8e5"><li id="EN-US_TOPIC_0000001188110588__l17fceebff3904f0bb294620e1940bd21"><strong id="EN-US_TOPIC_0000001188110588__a2cbb143fb14a4a7ab7c7f2102598e87e">WORK | TRANSACTION</strong><p id="EN-US_TOPIC_0000001188110588__a02900b0cf4ff4664aa1b80a02b226c63">Optional keyword in BEGIN format without functions.</p>
|
|
</li><li id="EN-US_TOPIC_0000001188110588__l0161fce2672e44e3a2c13eae3d6e7833"><strong id="EN-US_TOPIC_0000001188110588__a006308353a194b7dbaa9d78ff05bc4ee">ISOLATION LEVEL</strong><p id="EN-US_TOPIC_0000001188110588__a85a2eb7b97794dcdb7aafc9872b586b6">Specifies the transaction isolation level that determines the data that a transaction can view if other concurrent transactions exist.</p>
|
|
<div class="note" id="EN-US_TOPIC_0000001188110588__nc7427c8a24604dba8ec72ed9f1cee2a1"><img src="public_sys-resources/note_3.0-en-us.png"><span class="notetitle"> </span><div class="notebody"><p id="EN-US_TOPIC_0000001188110588__a14d09ce09de54104a14f88f5fb7fa801">The isolation level of a transaction cannot be reset after the first clause (<strong id="EN-US_TOPIC_0000001188110588__b2672995895020">INSERT</strong>, <strong id="EN-US_TOPIC_0000001188110588__b3924303095020">DELETE</strong>, <strong id="EN-US_TOPIC_0000001188110588__b1764295595020">UPDATE</strong>, <strong id="EN-US_TOPIC_0000001188110588__b2456886895020">FETCH</strong>, <strong id="EN-US_TOPIC_0000001188110588__b1979322895020">COPY</strong>) for modifying data is executed in the transaction.</p>
|
|
</div></div>
|
|
<p id="EN-US_TOPIC_0000001188110588__a28ac838bb1a64b3e8aeae9bea9c31550">Valid value:</p>
|
|
<ul id="EN-US_TOPIC_0000001188110588__u146e2193598c4e41bc78873d447129ec"><li id="EN-US_TOPIC_0000001188110588__l28c9cc103adb4d31ad227fc8e25cca5b"><strong id="EN-US_TOPIC_0000001188110588__b842352706154357">READ COMMITTED</strong>: Only committed data is read. This is the default.</li><li id="EN-US_TOPIC_0000001188110588__li6108237514257"><strong id="EN-US_TOPIC_0000001188110588__b134631404343">READ UNCOMMITTED</strong>: <span id="EN-US_TOPIC_0000001188110588__text1776522951">GaussDB(DWS)</span> does not support <strong id="EN-US_TOPIC_0000001188110588__b3468154012341">READ UNCOMMITTED</strong>. If <strong id="EN-US_TOPIC_0000001188110588__b747064020342">READ UNCOMMITTED</strong> is set, <strong id="EN-US_TOPIC_0000001188110588__b174711240183413">READ COMMITTED</strong> is executed instead.</li><li id="EN-US_TOPIC_0000001188110588__li1797917205717"><strong id="EN-US_TOPIC_0000001188110588__b171893645518">REPEATABLE READ</strong>: Only the data committed before transaction start is read. Uncommitted data or data committed in other concurrent transactions cannot be read.</li><li id="EN-US_TOPIC_0000001188110588__l71e336145b074bebb2845806a540d204"><strong id="EN-US_TOPIC_0000001188110588__b3793158191813">SERIALIZABLE</strong>: <span id="EN-US_TOPIC_0000001188110588__text603963019">GaussDB(DWS)</span> does not support <strong id="EN-US_TOPIC_0000001188110588__b77936589184">SERIALIZABLE</strong>. If <strong id="EN-US_TOPIC_0000001188110588__b1979495821819">SERIALIZABLE</strong> is set, <strong id="EN-US_TOPIC_0000001188110588__b679414585187">REPEATABLE READ</strong> is executed instead.</li></ul>
|
|
</li><li id="EN-US_TOPIC_0000001188110588__lb533910a1d0b4ee0bb2e42067e0da9fd"><strong id="EN-US_TOPIC_0000001188110588__a2d66f861dbc540c7971812753bfafc6e">READ WRITE | READ ONLY</strong><p id="EN-US_TOPIC_0000001188110588__ac662465d817b40deaa02522547b7d306">Specifies the transaction access mode (read/write or read only).</p>
|
|
</li></ul>
|
|
</div>
|
|
<div class="section" id="EN-US_TOPIC_0000001188110588__section155076315268"><h4 class="sectiontitle">Examples</h4><ul id="EN-US_TOPIC_0000001188110588__ul1327616213403"><li id="EN-US_TOPIC_0000001188110588__li192764218400">Start a transaction in default mode.<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001188110588__screen1507731122616"><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">START</span><span class="w"> </span><span class="k">TRANSACTION</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">table1</span><span class="w"> </span><span class="p">(</span><span class="n">a</span><span class="w"> </span><span class="nb">int</span><span class="p">,</span><span class="n">b</span><span class="w"> </span><span class="nb">int</span><span class="p">);</span>
|
|
<span class="k">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">table1</span><span class="p">;</span>
|
|
<span class="k">END</span><span class="p">;</span>
|
|
</pre></div></td></tr></table></div>
|
|
|
|
</div>
|
|
</li><li id="EN-US_TOPIC_0000001188110588__li10277102134014">Start a transaction with the isolation level being <strong id="EN-US_TOPIC_0000001188110588__b7518470833620">READ COMMITTED</strong> and the access mode being <strong id="EN-US_TOPIC_0000001188110588__b153770568733620">READ WRITE</strong>:<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001188110588__screen15663142118392"><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">START</span><span class="w"> </span><span class="k">TRANSACTION</span><span class="w"> </span><span class="k">ISOLATION</span><span class="w"> </span><span class="k">LEVEL</span><span class="w"> </span><span class="k">READ</span><span class="w"> </span><span class="k">COMMITTED</span><span class="w"> </span><span class="k">READ</span><span class="w"> </span><span class="k">WRITE</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">table1</span><span class="w"> </span><span class="p">(</span><span class="n">a</span><span class="w"> </span><span class="nb">int</span><span class="p">,</span><span class="n">b</span><span class="w"> </span><span class="nb">int</span><span class="p">);</span>
|
|
<span class="k">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">table1</span><span class="p">;</span>
|
|
<span class="k">COMMIT</span><span class="p">;</span>
|
|
</pre></div></td></tr></table></div>
|
|
|
|
</div>
|
|
</li></ul>
|
|
</div>
|
|
<div class="section" id="EN-US_TOPIC_0000001188110588__s934698652b7741e9b1c9ab78a4c743b9"><h4 class="sectiontitle">Helpful Links</h4><p id="EN-US_TOPIC_0000001188110588__a31995bf2f84e44daaf6c2852fae7b75a"><a href="dws_06_0259.html">COMMIT | END</a>, <a href="dws_06_0266.html">ROLLBACK</a>, <a href="dws_06_0264.html">SET TRANSACTION</a></p>
|
|
</div>
|
|
</div>
|
|
<div>
|
|
<div class="familylinks">
|
|
<div class="parentlink"><strong>Parent topic:</strong> <a href="dws_06_0254.html">TCL Syntax</a></div>
|
|
</div>
|
|
</div>
|
|
|