Navicat如何将带有依赖关系的视图导入到其他同类型的数据库中(mySQL数据库)

一、背景 

       Navicat在导入存在多张创建视图语句的sql文件或其他格式文件(都是由Navicat导出生成)时会报XXXX视图不存在的错误,数据库同步和传输也会发生这种错误。 

     这种错误的本质原因是Navicat导出生成的文件或同步传输里面的对象都是按某种方式排序(好像是按名称吧)造成的 。 当创建某个视图的时候,该视图依赖或调用的视图不存在于目标数据库, 因为这个"不存在"的视图的创建语句排在了当前所创建视图语句的后面。

那么怎么办呢? 有人说调整一下sql语句的顺序, 如果一两张视图改改就算 但是如果是100个视图互相调用那这个方法肯定就不行了 接下来我给大家介绍一下我的方法。

 

二、方法思路

                利用数据库恢复备份文件  向目标数据库导入视图 

三、方法原理

     我个人的猜测是数据库恢复备份文件时和数据库同步传输或是导入脚本文件的原理不一样  也就是说数据库恢复备份文件不是一句一句的执行sql 所以这个方法可行 具体原理请大神指教  因为我也不懂mysql和Navicat的内部机制与原理 因为该方法可行 所以我给大家分享一下

四、 方法步骤

第一步 在源数据库的“备份”点击鼠标右键 然后点击“新建备份” 

        (我在这里选择了所有的视图  因为创建视图时 视图中的表必须存在  而我目标数据库又是空的  所以我也选择了表)

选择完以后  然后点击“开始”  备份完成后  你能在备份那里  看到一个以系统时间命名的备份文件 如下图

   

第二步 将备份的文件恢复到目标数据库 以此来完成 视图导入的先操作

(QQ截图会把右键菜单给关掉 所以我就文字描述了)

在目标数据库的“备份”点击右键  然后选择“还原备份从....”  然后选择 你刚才 备份的那个备份的文件  然后恢复备份操作  之后那些视图就导入进去了 

温馨提示:如果不知道刚才备份的那个文件在哪的话 可以在源数据库的“备份”点击右键 选择“在文件夹显示” 

                  还原备份的时候 在“还原”窗口的“高级”tab页  根据自己的需求选择是否覆盖

 

 

 

 

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值