forked from docs/doc-exports
Reviewed-by: Pruthi, Vineet <vineet.pruthi@t-systems.com> Co-authored-by: Su, Xiaomeng <suxiaomeng1@huawei.com> Co-committed-by: Su, Xiaomeng <suxiaomeng1@huawei.com>
171 lines
15 KiB
HTML
171 lines
15 KiB
HTML
<a name="dli_08_15107"></a><a name="dli_08_15107"></a>
|
|
|
|
<h1 class="topictitle1">INSERT INTO</h1>
|
|
<div id="body0000001979860969"><p id="dli_08_15107__p1662614241790">This section describes how to use the <strong id="dli_08_15107__b12945101918306">INSERT INTO</strong> statement to write job results to a sink table.</p>
|
|
<div class="section" id="dli_08_15107__section1225417221096"><h4 class="sectiontitle">Writing Data to a Sink Table</h4><ul id="dli_08_15107__ul103454210362"><li id="dli_08_15107__li9218175193615"><strong id="dli_08_15107__b4581838183017">Syntax</strong><div class="codecoloring" codetype="Sql" id="dli_08_15107__screen102191255362"><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="w"> </span><span class="k">INSERT</span><span class="w"> </span><span class="k">INTO</span><span class="w"> </span><span class="n">your_sink</span>
|
|
<span class="w"> </span><span class="k">SELECT</span><span class="w"> </span><span class="p">...</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">your_source</span><span class="w"> </span><span class="k">WHERE</span><span class="w"> </span><span class="p">...</span>
|
|
</pre></div></td></tr></table></div>
|
|
</div>
|
|
</li><li id="dli_08_15107__li1252215164362"><strong id="dli_08_15107__b102444273016">Example</strong><div class="p" id="dli_08_15107__p11272448173611">In this example, two tables <strong id="dli_08_15107__b1746330113510">my_source</strong> and <strong id="dli_08_15107__b13260534153511">my_sink</strong> are defined, and the <strong id="dli_08_15107__b1425324243514">INSERT INTO</strong> statement is used to select data from the source table and insert the data to the sink table.<div class="codecoloring" codetype="Sql" id="dli_08_15107__screen1062389162013"><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="c1">-- Use the datagen connector to create the source table my_source.</span>
|
|
<span class="k">CREATE</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">my_source</span><span class="w"> </span><span class="p">(</span>
|
|
<span class="w"> </span><span class="n">name</span><span class="w"> </span><span class="nb">VARCHAR</span><span class="p">,</span>
|
|
<span class="w"> </span><span class="n">age</span><span class="w"> </span><span class="nb">BIGINT</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="s1">'connector'</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s1">'datagen'</span><span class="p">);</span>
|
|
|
|
<span class="c1">-- Use the JDBC connector to create the sink table my_sink.</span>
|
|
<span class="k">CREATE</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">my_sink</span><span class="w"> </span><span class="p">(</span>
|
|
<span class="w"> </span><span class="n">name</span><span class="w"> </span><span class="nb">VARCHAR</span><span class="p">,</span>
|
|
<span class="w"> </span><span class="n">age</span><span class="w"> </span><span class="nb">BIGINT</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="s1">'connector'</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s1">'jdbc'</span><span class="p">,</span>
|
|
<span class="w"> </span><span class="s1">'url'</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s1">'jdbc:mysql://xxx/your-database'</span><span class="p">,</span>
|
|
<span class="w"> </span><span class="s1">'table-name'</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s1">'your-table'</span><span class="p">,</span>
|
|
<span class="w"> </span><span class="s1">'username'</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s1">'your-username'</span><span class="p">,</span>
|
|
<span class="w"> </span><span class="s1">'password'</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s1">'your-password'</span>
|
|
<span class="p">);</span>
|
|
|
|
<span class="c1">-- Run the INSERT INTO statement to select data from the my_source table and insert the data into the my_sink table.</span>
|
|
<span class="k">INSERT</span><span class="w"> </span><span class="k">INTO</span><span class="w"> </span><span class="n">my_sink</span>
|
|
<span class="k">SELECT</span><span class="w"> </span><span class="n">name</span><span class="p">,</span><span class="w"> </span><span class="n">age</span>
|
|
<span class="k">FROM</span><span class="w"> </span><span class="n">my_source</span><span class="p">;</span>
|
|
</pre></div></td></tr></table></div>
|
|
</div>
|
|
</div>
|
|
</li></ul>
|
|
</div>
|
|
<div class="section" id="dli_08_15107__section16167175281320"><h4 class="sectiontitle">Writing Data to Multiple Sink Tables</h4><p id="dli_08_15107__p18455134912299"><strong id="dli_08_15107__b783911293011">EXECUTE STATEMENT SET BEGIN... END; </strong> is a required statement for writing data to multiple sink tables. It is used to define multiple data insertion operations in the same job.</p>
|
|
<div class="caution" id="dli_08_15107__note265964744320"><span class="cautiontitle"><img src="public_sys-resources/caution_3.0-en-us.png"> </span><div class="cautionbody"><p id="dli_08_15107__p86598470434"><strong id="dli_08_15107__b58250644420">EXECUTE STATEMENT SET BEGIN... END;</strong> is required when data is written to multiple sink tables.</p>
|
|
</div></div>
|
|
<ul id="dli_08_15107__ul107211819163410"><li id="dli_08_15107__li187211219143420"><strong id="dli_08_15107__b46851539183020">Syntax</strong><div class="codecoloring" codetype="Sql" id="dli_08_15107__screen563174817342"><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></pre></div></td><td class="code"><div><pre><span></span><span class="k">EXECUTE</span><span class="w"> </span><span class="k">STATEMENT</span><span class="w"> </span><span class="k">SET</span><span class="w"> </span><span class="k">BEGIN</span>
|
|
<span class="c1">-- First DML statement</span>
|
|
<span class="w"> </span><span class="k">INSERT</span><span class="w"> </span><span class="k">INTO</span><span class="w"> </span><span class="n">your_sink1</span>
|
|
<span class="w"> </span><span class="k">SELECT</span><span class="w"> </span><span class="p">...</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">your_source</span><span class="w"> </span><span class="k">WHERE</span><span class="w"> </span><span class="p">...;</span>
|
|
|
|
<span class="c1">-- Second DML statement</span>
|
|
<span class="w"> </span><span class="k">INSERT</span><span class="w"> </span><span class="k">INTO</span><span class="w"> </span><span class="n">your_sink2</span>
|
|
<span class="w"> </span><span class="k">SELECT</span><span class="w"> </span><span class="p">...</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">your_source</span><span class="w"> </span><span class="k">WHERE</span><span class="w"> </span><span class="p">...</span>
|
|
|
|
<span class="p">...</span>
|
|
<span class="k">END</span><span class="p">;</span>
|
|
</pre></div></td></tr></table></div>
|
|
</div>
|
|
</li><li id="dli_08_15107__li1472116195347"><strong id="dli_08_15107__b1797284214305">Example</strong><div class="p" id="dli_08_15107__p19368151693818">In this example, the source table <strong id="dli_08_15107__b1353125984410">datagen_source</strong> and sink tables <strong id="dli_08_15107__b7391878458">print_sinkA</strong> and <strong id="dli_08_15107__b1193121013458">print_sinkB</strong> are defined. <strong id="dli_08_15107__b060210301731">EXECUTE STATEMENT</strong> is used to execute two <strong id="dli_08_15107__b189798421232">INSERT INTO</strong> statements to write the converted data to two different sinks.<div class="codecoloring" codetype="Sql" id="dli_08_15107__screen2086161818224"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal"> 1</span>
|
|
<span class="normal"> 2</span>
|
|
<span class="normal"> 3</span>
|
|
<span class="normal"> 4</span>
|
|
<span class="normal"> 5</span>
|
|
<span class="normal"> 6</span>
|
|
<span class="normal"> 7</span>
|
|
<span class="normal"> 8</span>
|
|
<span class="normal"> 9</span>
|
|
<span class="normal">10</span>
|
|
<span class="normal">11</span>
|
|
<span class="normal">12</span>
|
|
<span class="normal">13</span>
|
|
<span class="normal">14</span>
|
|
<span class="normal">15</span>
|
|
<span class="normal">16</span>
|
|
<span class="normal">17</span>
|
|
<span class="normal">18</span>
|
|
<span class="normal">19</span>
|
|
<span class="normal">20</span>
|
|
<span class="normal">21</span>
|
|
<span class="normal">22</span>
|
|
<span class="normal">23</span>
|
|
<span class="normal">24</span>
|
|
<span class="normal">25</span>
|
|
<span class="normal">26</span>
|
|
<span class="normal">27</span>
|
|
<span class="normal">28</span>
|
|
<span class="normal">29</span>
|
|
<span class="normal">30</span>
|
|
<span class="normal">31</span>
|
|
<span class="normal">32</span>
|
|
<span class="normal">33</span>
|
|
<span class="normal">34</span>
|
|
<span class="normal">35</span>
|
|
<span class="normal">36</span>
|
|
<span class="normal">37</span></pre></div></td><td class="code"><div><pre><span></span><span class="c1">-- Use the datagen connector to create the source table datagen_source.</span>
|
|
<span class="k">CREATE</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">datagen_source</span><span class="w"> </span><span class="p">(</span>
|
|
<span class="w"> </span><span class="n">name</span><span class="w"> </span><span class="nb">VARCHAR</span><span class="p">,</span>
|
|
<span class="w"> </span><span class="n">age</span><span class="w"> </span><span class="nb">BIGINT</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="s1">'connector'</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s1">'datagen'</span>
|
|
<span class="p">);</span>
|
|
|
|
<span class="c1">-- Use the print connector to create the result tables print_sinkA and print_sinkB.</span>
|
|
|
|
<span class="k">CREATE</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">print_sinkA</span><span class="p">(</span>
|
|
<span class="w"> </span><span class="n">name</span><span class="w"> </span><span class="nb">VARCHAR</span><span class="p">,</span>
|
|
<span class="w"> </span><span class="n">age</span><span class="w"> </span><span class="nb">BIGINT</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="s1">'connector'</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s1">'print'</span><span class="w"> </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">print_sinkB</span><span class="p">(</span>
|
|
<span class="w"> </span><span class="n">name</span><span class="w"> </span><span class="nb">VARCHAR</span><span class="p">,</span>
|
|
<span class="w"> </span><span class="n">age</span><span class="w"> </span><span class="nb">BIGINT</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="s1">'connector'</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s1">'print'</span><span class="w"> </span>
|
|
<span class="p">);</span>
|
|
|
|
<span class="c1">-- Use EXECUTE STATEMENT SET BEGIN to execute two INSERT INTO statements.</span>
|
|
<span class="c1">-- The first INSERT INTO statement converts the data in the datagen_source table as needed and writes the converted data to print_sinkA.</span>
|
|
<span class="c1">-- The second INSERT INTO statement converts data as needed and writes the converted data to print_sinkB.</span>
|
|
<span class="k">EXECUTE</span><span class="w"> </span><span class="k">STATEMENT</span><span class="w"> </span><span class="k">SET</span><span class="w"> </span><span class="k">BEGIN</span>
|
|
<span class="k">INSERT</span><span class="w"> </span><span class="k">INTO</span><span class="w"> </span><span class="n">print_sinkA</span><span class="w"> </span>
|
|
<span class="w"> </span><span class="k">SELECT</span><span class="w"> </span><span class="k">UPPER</span><span class="p">(</span><span class="n">name</span><span class="p">),</span><span class="w"> </span><span class="k">min</span><span class="p">(</span><span class="n">age</span><span class="p">)</span><span class="w"> </span>
|
|
<span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">datagen_source</span><span class="w"> </span>
|
|
<span class="w"> </span><span class="k">GROUP</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="k">UPPER</span><span class="p">(</span><span class="n">name</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">print_sinkB</span><span class="w"> </span>
|
|
<span class="w"> </span><span class="k">SELECT</span><span class="w"> </span><span class="k">LOWER</span><span class="p">(</span><span class="n">name</span><span class="p">),</span><span class="w"> </span><span class="k">max</span><span class="p">(</span><span class="n">age</span><span class="p">)</span><span class="w"> </span>
|
|
<span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">datagen_source</span><span class="w"> </span>
|
|
<span class="w"> </span><span class="k">GROUP</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="k">LOWER</span><span class="p">(</span><span class="n">name</span><span class="p">);</span>
|
|
<span class="k">END</span><span class="p">;</span>
|
|
</pre></div></td></tr></table></div>
|
|
</div>
|
|
</div>
|
|
</li></ul>
|
|
</div>
|
|
</div>
|
|
<div>
|
|
<div class="familylinks">
|
|
<div class="parentlink"><strong>Parent topic:</strong> <a href="dli_08_15066.html">DML Snytax</a></div>
|
|
</div>
|
|
</div>
|
|
|