Navicat在导入存在多张创建视图语句的sql文件或其他格式文件(都是由Navicat导出生成)时会报XXXX视图不存在的错误,数据库同步和传输也会发生这种错误。
这种错误的本质原因是Navicat导出生成的文件或同步传输里面的对象都是按某种方式排序(好像是按名称吧)造成的 。 当创建某个视图的时候,该视图依赖或调用的视图不存在于目标数据库, 因为这个"不存在"的视图的创建语句排在了当前所创建视图语句的后面。
那么怎么办呢? 有人说调整一下sql语句的顺序, 如果一两张视图改改就算 但是如果是100个视图互相调用那这个方法肯定就不行了 接下来我给大家介绍一下我的方法。
利用数据库恢复备份文件 向目标数据库导入视图
我个人的猜测是数据库恢复备份文件时和数据库同步传输或是导入脚本文件的原理不一样 也就是说数据库恢复备份文件不是一句一句的执行sql 所以这个方法可行 具体原理请大神指教 因为我也不懂mysql和Navicat的内部机制与原理 因为该方法可行 所以我给大家分享一下
第一步 在源数据库的“备份”点击鼠标右键 然后点击“新建备份”
(我在这里选择了所有的视图 因为创建视图时 视图中的表必须存在 而我目标数据库又是空的 所以我也选择了表)
本文发布于:2024-02-02 19:38:45,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170687392145993.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |