首页 > 数据库技术 > 详细

使用mysql恢复数据时视图变成表

时间:2018-01-10 14:47:34      阅读:244      评论:0      收藏:0      [点我收藏+]
问题是这样的,使用mysqldump备份线上数据库之后,然后通过mysql 命令行恢复到线下数据库,发现视图都成了表。
为什么会这样呢?这就得聊聊mysql备份恢复的机制了
其实查看mysqldump备份产生的sql语句,会发现视图首先会恢复成表,之后再删除表,新建视图。

如下图,可以看到在15572行先创建了v_t_borrow_details表,然后在21322行创建了v_t_borrow_details视图
技术分享图片

这样是为了避免依赖关系,比如有2个 VIEW: v_a, v_b
v_a 引用 v_b
如果先建 v_a ,那么它引用的 v_b 还没有创建,是建不成功的,而先把所有的 view 都弄成表先建一次,表是没有依赖的,都会创建成功,然后再逐个删除 view 和创建 view,这时候引用的东东都是以表或 view 的形式存在了,不会因为依赖的对象出问题。
而之所以视图会变成表了,那是因为在恢复过程中出错导致了恢复中断,后面的语句都skipping了。

使用mysql恢复数据时视图变成表

原文:http://blog.51cto.com/billy98/2059406

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!