我们一直在使用 phpmyadmin 4 导出数据库。
数据库包含一些视图,并且在通常的 CREATE VIEW 命令之前
有一个带有注释“视图 viewName 的替代结构”的 CREATE TABLE 命令。
为什么使用这种替代结构?
注意:除非删除替代结构,否则从导出文件导入将会失败。
“替代”或“替代”结构是从视图创建的表,其结构与视图相同。
它用于确保在导出多个相互依赖的视图时满足依赖关系。
我不确定如果存在替代结构,为什么导出会失败(拥有这些结构的含义实际上是相反的),但过程中可能存在错误。我必须查看导出文件的相关部分才能真正了解情况。
phpmyadmin sourceforge 站点在 bug #3846 中提到了替代结构的使用(http://sourceforge.net/p/phpmyadmin/bugs/3846/):
导出时,phpMyAdmin 为视图创建一个替代结构(使用 CREATE TABLE),然后删除该表并使用 CREATE VIEW。
在 github 上的 phpmyadmin bug #11711 的评论中还有另一个参考(https://github.com/phpmyadmin/phpmyadmin/commit/2f2b505):
视图 A 可能依赖于下面定义的另一个视图 B,因此如果我们不使用替代,视图 A 创建将会失败。依赖关系可能比这更复杂,因此我们使用替身而不是计算所有依赖关系。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)