用于视图的MySQL Stand-in结构。它是什么?

时间:2014-02-05 09:49:22

标签: mysql phpmyadmin

我们一直在使用phpmyadmin 4导出数据库。 数据库包含一些视图,并且在通常的CREATE VIEW命令之前 有一个CREATE TABLE命令,带有注释“视图viewName的替代结构”。

为什么使用这种替代结构?

注意:除非删除了替代结构,否则从导出的文件导入将失败。

1 个答案:

答案 0 :(得分:5)

“stand-in”或“standin”结构是从视图创建的表,其结构与视图相同。 它用于确保在导出许多相互依赖的视图时满足依赖性。

我不确定如果存在替换结构导致导出失败的原因(实际上反过来意味着导出),但是在这个过程中可能存在错误。我必须看到导出文件的相关部分才能真正说明。

phpmyadmin sourceforge网站提到bug#3846(http://sourceforge.net/p/phpmyadmin/bugs/3846/)中使用替代结构:

  

导出时,phpMyAdmin为视图创建一个替代结构(使用CREATE TABLE),然后它会丢弃此表并使用CREATE VIEW。

并且在github(https://github.com/phpmyadmin/phpmyadmin/commit/2f2b505)上的phpmyadmin bug#11711的评论中有另一个引用:

  

视图A可能依赖于下面定义的另一个视图B,因此如果我们不使用替换,视图A创建将失败。依赖关系可能更复杂,因此我们不使用计算所有依赖关系,而是使用替身。