微笑国度 發表於 2023-7-18 00:00:00

DBeaver操作数据表的拷贝的实现

<p>
          通过dbeaver工具链接数据库后,我们就可以通过菜单或者命令功能来实现我们想要的目的。</p>
<p>
        <span><strong>  (一)创建数据库</strong></span></p>
<p>
          新建数据库,如下图所示:</p>
<p>
        <img title="DBeaver操作数据表的拷贝的实现" alt="DBeaver操作数据表的拷贝的实现" src="https://zhuji.jb51.net/uploads/img/202305/9e5fe8c5eb4a5c194e6a4886fe0919a4.jpg">——&gt;<img title="DBeaver操作数据表的拷贝的实现" alt="DBeaver操作数据表的拷贝的实现" src="https://zhuji.jb51.net/uploads/img/202305/cad50ee0c4f9b1e451118bb2020200c8.jpg"></p>
<p>
          在点击“确定”按钮后,可能会遇到失败,此时,我们可以直接通过sql语句来实现,在sql控制台中输入create database bien_test,执行sql命令就可以完成创建了。</p>
<p>
        <span><strong>  (二)创建数据表</strong></span></p>
<p>
          在bien_test数据库下新建表table_a(名称任意,只要是合法的名称即可),如下所示:</p>
<p>
        <img title="DBeaver操作数据表的拷贝的实现" alt="DBeaver操作数据表的拷贝的实现" src="https://zhuji.jb51.net/uploads/img/202305/4ee45afee4819bb2533aef26abddc966.jpg"></p>
<p>
          当点击右下角的“保存”按钮时,提示这样的信息“incorrect table definition; there can be only one auto column and it must be defined as a key”(自增长字段不是主键),此时需要在约束中指定id为主键,如下图所示:</p>
<p>
        <img title="DBeaver操作数据表的拷贝的实现" alt="DBeaver操作数据表的拷贝的实现" src="https://zhuji.jb51.net/uploads/img/202305/3f7e89dc2a09ebb7328803ef542435d3.jpg"></p>
<p>
          这样设置好后,在点击“保存”,就可以成功创建数据表了。接下来,我们通过菜单或快捷键的方式来创建一个跟tabel_a表格式类似的新表,先选中tabel_a,右击--&gt;菜单--&gt;复制,或者直接使用ctrl+c快捷键,然后ctrl+v粘贴,最后点击右下角的“保存”按钮就完成新表的创建了,我们将该表重新命名为tabel_b。注意了,通过复制、粘贴表的方式,只能是将表的各种配置信息进行拷贝,而表中的数据是没有进行拷贝的。</p>
<p>
        <span><strong>  (三)填充数据</strong></span></p>
<p>
          在sql控制台中输入如下两条语句:</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlightersql" id="highlighter_610663">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="sql keyword">insert</code> <code class="sql keyword">into</code> <code class="sql plain">bien_test.tabel_a(</code><code class="sql keyword">name</code><code class="sql plain">, age, sex) </code><code class="sql keyword">values</code> <code class="sql plain">(</code><code class="sql string">'jack'</code><code class="sql plain">, 12, </code><code class="sql string">'男'</code><code class="sql plain">);</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="sql keyword">insert</code> <code class="sql keyword">into</code> <code class="sql plain">bien_test.tabel_a(</code><code class="sql keyword">name</code><code class="sql plain">, age, sex) </code><code class="sql keyword">values</code> <code class="sql plain">(</code><code class="sql string">'anny'</code><code class="sql plain">, 20, </code><code class="sql string">'女'</code><code class="sql plain">);</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
</div>
<p>
          这样就可以在table_a中填充两条示例数据了,如下图所示:</p>
<p>
        <img title="DBeaver操作数据表的拷贝的实现" alt="DBeaver操作数据表的拷贝的实现" src="https://zhuji.jb51.net/uploads/img/202305/01bbe5e9b26fb287a2df27e3c3322f35.jpg"></p>
<p>
        <span><strong>  (四)拷贝数据表</strong></span></p>
<p>
        <strong>  1、通过菜单方式进行拷贝</strong></p>
<p>
          将数据表tabel_a中的数据拷贝到数据表tabel_b中,先选中tabel_b,右击,选择导入数据,如下图所示:</p>
<p>
        <img title="DBeaver操作数据表的拷贝的实现" alt="DBeaver操作数据表的拷贝的实现" src="https://zhuji.jb51.net/uploads/img/202305/77336e3aae92d3f2fd5187c4007716e4.jpg">——&gt;<img title="DBeaver操作数据表的拷贝的实现" alt="DBeaver操作数据表的拷贝的实现" src="https://zhuji.jb51.net/uploads/img/202305/8e640cabe8473b82fe986e57b7ab8cf0.jpg">——&gt;</p>
<p>
        <img title="DBeaver操作数据表的拷贝的实现" alt="DBeaver操作数据表的拷贝的实现" src="https://zhuji.jb51.net/uploads/img/202305/8d805928c28d342ba805f7bd308ceb51.jpg">——&gt;<img title="DBeaver操作数据表的拷贝的实现" alt="DBeaver操作数据表的拷贝的实现" src="https://zhuji.jb51.net/uploads/img/202305/7e3295dbbbd625b19b416a8cc8afb856.jpg"></p>
<p>
          点击上图的红色框,选择源端,我们选择了tabel_a表作为源端,如上图的右边所示。接着,按操作步骤一步一步点击即可。最终,tabel_b的数据如下图所示:</p>
<p>
        <img title="DBeaver操作数据表的拷贝的实现" alt="DBeaver操作数据表的拷贝的实现" src="https://zhuji.jb51.net/uploads/img/202305/4786f0f32be7663964a04680bf4ceef1.jpg"></p>
<p>
          就这样,就完成了数据表中数据的拷贝。此外,我们可以先不创建新表,直接通过源表来导出数据至一个运行中创建的新表,比如:bien_test数据库中暂时没有tabel_c表,我们事先不要创建tabel_c表,同样可以将tabel_a表的数据拷贝到tabel_c表中,具体操作如下:</p>
<p>
          (1)选中tabel_a表,右击,选择“导出数据”,如下图所示:</p>
<p>
        <img title="DBeaver操作数据表的拷贝的实现" alt="DBeaver操作数据表的拷贝的实现" src="https://zhuji.jb51.net/uploads/img/202305/23fe5e1ad5903aff2a941f0a7aa7f243.jpg">——&gt;<img title="DBeaver操作数据表的拷贝的实现" alt="DBeaver操作数据表的拷贝的实现" src="https://zhuji.jb51.net/uploads/img/202305/09d3008da8153a819229b525611ddc83.jpg">——&gt;</p>
<p>
        <img title="DBeaver操作数据表的拷贝的实现" alt="DBeaver操作数据表的拷贝的实现" src="https://zhuji.jb51.net/uploads/img/202305/333e7196039f1ec3c29eca2611c723fb.jpg"></p>
<p>
          (2)在上图中,在target列中输入新表tabel_c名称,而mapping这一列会自动默认选择create(表示新建表);接下来,按照界面提示按钮一步一步完成操作即可。tabel_c表中数据最终的效果与tabel_b表中数据一样。由此可见,在拷贝表数据时可以不用事先创建表,直接有源表导出至一个运行时创建的新表。</p>
<p>
        <strong>  2、通过sql命令进行拷贝</strong></p>
<p>
          (1)insert select方式</p>
<p>
          该方式事先要新建一个表,假设为tabel_d表,才可以将tabel_a表数据拷贝到tabel_d表中。</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlightersql" id="highlighter_691672">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="sql keyword">insert</code> <code class="sql keyword">into</code> <code class="sql plain">bien_test.tabel_d(</code><code class="sql keyword">name</code><code class="sql plain">, age, sex) </code><code class="sql keyword">select</code> <code class="sql keyword">name</code><code class="sql plain">, age, sex </code><code class="sql keyword">from</code> <code class="sql plain">bien_test.tabel_a</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
</div>
<p>
          通过运行上述命令后完成了数据从tabel_a表拷贝到tabel_d表的过程,注意了tabel_a表中所有的数据都会被拷贝到tabel_d表中。</p>
<p>
          (2)select into方式</p>
<p>
          该方式可以不用事先创建表,假设为tabel_e表,通过select into方式也是可以完成数据表的拷贝。</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlightersql" id="highlighter_322297">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="sql keyword">select</code> <code class="sql plain">* </code><code class="sql keyword">into</code> <code class="sql plain">tabel_e </code><code class="sql keyword">from</code> <code class="sql plain">bien_test.tabel_a</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
</div>
<p>
          经测试,在mysql中上述语句执行失败,此时我们需要稍作修改一下:</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlightersql" id="highlighter_208546">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="sql keyword">create</code> <code class="sql keyword">table</code> <code class="sql plain">tabel_e </code><code class="sql keyword">as</code> <code class="sql keyword">select</code> <code class="sql plain">* </code><code class="sql keyword">from</code> <code class="sql plain">bien_test.tabel_a</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
</div>
<p>
          上述命令会执行成功,最终也是完成了数据的拷贝。需要注意的是,这种方式的拷贝,主键信息是没有被复制过来的!!!</p>
<p>
        到此这篇关于dbeaver操作数据表的拷贝的实现的文章就介绍到这了,更多相关dbeaver 数据表拷贝内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!</p>
<p>
        原文链接:https://www.cnblogs.com/bien94/p/12794634.html</p>
頁: [1]
查看完整版本: DBeaver操作数据表的拷贝的实现