从mysqldump backup执行相互依赖的视图

2024-09-27 00:20:21 发布

您现在位置:Python中文网/ 问答频道 /正文

mysqldump创建一个按字母顺序列出的表(和视图)的转储。当表之间存在外键关系时,这不是很方便,但是,可以通过运行以下命令轻松解决问题:

SET FOREIGN_KEY_CHECKS=0;

我有一种情况,视图,vwapple,依赖于视图,比如说,vwalange。在mysqldump中,vwapple在vwrange之前被列出并执行,这是有问题的,因为我们将得到一条“viewvwarange不存在”错误消息。

这种情况是如何解决的?视图是否具有与表类似的解决方案?还是让每一个视图独立起来以避免这个问题?

注意
我正在使用python脚本恢复数据库。每个视图和表都在其单独的.sql文件中,因为我想独立地对每个数据库对象进行源代码管理。在


Tags: key命令视图数据库关系顺序字母情况
1条回答
网友
1楼 · 发布于 2024-09-27 00:20:21

在转储整个数据库时,mysqldump的最新版本是这样解决的:对于数据库中的每个视图,它们首先创建具有相同结构的空表,然后创建视图,在创建视图之前删除每个占位符表。用视图替换表似乎不会损害依赖它的视图。在

我之所以知道这一点,是因为这种方法还有另一个flaw,它让我明白了:视图中的行可能比表中的行包含更多的数据,因此无法创建一些占位符表,从而导致一些转储在没有手动干预的情况下无法恢复。因此,视图的拓扑排序会更好,尽管这可能需要一些工作。在

相关问题 更多 >

    热门问题