我们一直在使用phpmyadmin 4导出数据库。 数据库包含一些视图,并且在通常的CREATE VIEW命令之前 有一个CREATE TABLE命令,带有注释“视图viewName的替代结构”。
为什么使用这种替代结构?
注意:除非删除了替代结构,否则从导出的文件导入将失败。
答案 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创建将失败。依赖关系可能更复杂,因此我们不使用计算所有依赖关系,而是使用替身。