Mysql导入数据报错[SQL] Query main start [ERR] 1146 - Table ‘xxx.xxx_view‘ doesn‘t exist

Mysql将数据库导入另一个数据库的时候,执行sql文件或查询语句报错:

[SQL] Query main start
[ERR] 1146 - Table 'xxx_view' doesn't exist
[ERR] 
CREATE ALGORITHM = UNDEFINED SQL SECURITY DEFINER VIEW `xxx_view` AS select `cp`.`id` AS `id`,`cp`.`is_delete` AS `is_delete`,`cp`.`name` AS `name`,`cp`.`cost` AS `cost`,`cp`.`business_area_id` AS `business_area_id`,`cp`.`charge_type_id` AS `charge_type_id`,`cp`.`remark` AS `remark`,`cp`.`create_user_id` AS `create_user_id`,`cp`.`create_user` AS `create_user`,`cp`.`create_time` AS `create_time`,`cp`.`modify_user_id` AS `modify_user_id`,`cp`.`modify_user` AS `modify_user`,`cp`.`modify_time` AS `modify_time`,`ba`.`name` AS `business_area`,`d`.`dict_value` AS `charge_type` from ((`charge_package` `cp` left join `business_area` `ba` on((`ba`.`id` = `cp`.`business_area_id`))) left join `dict` `d` on((`cp`.`charge_type_id` = `d`.`id`))) where (`cp`.`is_delete` = 0);

这时候查看新导的数据库,发现表已经全部导入,而数据库内的视图导入到一半,就报错终止了。
这是因为在新建视图的时候,是有序的,新建好视图以后,mysql会以首字母排序视图,使得我们之前添加的视图顺序错乱,而某些特定的情况下,视图之间存在有依赖,所以在被依赖的视图还未添加之前,mysql语句就执行依赖的语句,自然就会报错。

解决:

查看报错信息,手动添加单视图Table ‘xxx_view’
之后再重新执行sql文件,再遇到报错再逐一手动添加对应报错的视图,重复此步骤即可。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

神也畏惧小卢

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值