首页 新闻 赞助 找找看

Navicat for Mysql复制表问题

0
悬赏园豆:10 [已解决问题] 解决于 2016-03-24 19:47

最近做的这个项目,连接的数据库是Mysql,然后公司设置的内部连接,也就是只能用公司的网络连接数据库,外面的网络连接不上。

于是我就想到把公司的数据库表格(包括表结构和内容)复制到我本地上来,利用Navicat。

项目组长复制的办法是:利用Navicat,同时连接本地数据库和公司数据库,然后在公司的数据库里面选中要复制的表格(大概有200个),直接Ctrl+C,然后到本地数据库界面Ctrl+V,过了一两分钟,公司这200个表全部复制到本地数据库了。

我也照着他这个办法来搞,但是蛋疼的事来了,复制进来的是单表(就是没有外键关联的表),有外键关联的表全部没有复制进来。然后我又尝试了把公司的表导出成.txt文件,然后往本地数据库写入,也是有外键的表没有导入,其他表都导入了。

我郁闷啊,不知道是不是跟数据库版本,或者是Navicat有没有关系?想换数据库,但是数据导入导出麻烦,外加万一重新安装数据库失败就更蛋疼的,各位高手来个完整的解决办法。

提示:数据库是Mysql,工具是Navicat For Mysql

飞天鼠-的主页 飞天鼠- | 初学一级 | 园豆:176
提问于:2016-03-24 14:01
< >
分享
最佳答案
0

没试过,试试下面两个方法?

一、工具-结构同步(有比对外键等选项),数据同步,数据传输几个功能可以尝试。

二、库A新建备份,库B还原备份

收获园豆:10
不应挽留 | 初学一级 |园豆:166 | 2016-03-24 16:54

嗯,我用数据传输解决了这个问题。

飞天鼠- | 园豆:176 (初学一级) | 2016-03-24 19:47
其他回答(2)
0

你先在公司的数据库在你的电脑新建一个备份

然后在你电脑的数据库还原这个数据库

刘宏玺 | 园豆:14020 (专家六级) | 2016-03-24 14:48

嗯,你说的这个思路是对的,还少一个正确的执行方法。 

支持(0) 反对(0) 飞天鼠- | 园豆:176 (初学一级) | 2016-03-24 15:15

@Я│R、英俊: 都是傻瓜试操作,很简单的

支持(0) 反对(0) 刘宏玺 | 园豆:14020 (专家六级) | 2016-03-24 15:15
0

对数据库转储SQL, 得到sql文件后, 在你本地建一个同名数据库后, 再用运行SQL文件

dilex | 园豆:52 (初学一级) | 2016-03-24 14:59

支持(0) 反对(0) 飞天鼠- | 园豆:176 (初学一级) | 2016-03-24 15:12

照着这样,也只能导入一部份数据,有外键关联的表仍然导不进来。 

支持(0) 反对(0) 飞天鼠- | 园豆:176 (初学一级) | 2016-03-24 15:13

@Я│R、英俊: 这个情况只能打开sql文件, 把那些包含了作为外键的字段的表和表的数据剪切到前面去, 因为这种导出是按表名排序的

支持(0) 反对(0) dilex | 园豆:52 (初学一级) | 2016-03-24 15:17

@dilex: 剪切出去?哪我表的数据就不能一次性完全导入了...。你说的按表名排序,我外键导不进是不是跟这个排序有关?是不是在哪修改一下排序方式,就可以一次性完全导入了?

支持(1) 反对(0) 飞天鼠- | 园豆:176 (初学一级) | 2016-03-24 15:20

@Я│R、英俊: Navicat For Mysql我的印象是没办法修改导出表的顺序的, 但导出的都是sql语句呢, 你可以修改其中的sql, 把一些作为外键的表和表的insert into语句, 放到文件最前面, 这样运行SQL文件的时候, 这些作为外键的表和其数据就会最先插入到数据库里, 那么后面那些对其有外键关联的表建成和它们数据在insert into的时候就不会报错了呢

支持(0) 反对(0) dilex | 园豆:52 (初学一级) | 2016-03-24 15:25

@dilex: 刚才我打开看了下文件,数据太多了,差一千行就六万行了,这来回操作得累得不行不行的````我再看看有没有更好的办法,谢谢。

支持(0) 反对(0) 飞天鼠- | 园豆:176 (初学一级) | 2016-03-24 15:35
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册