【发布时间】:2014-03-01 16:13:00
【问题描述】:
我们一直在使用 phpmyadmin 4 导出数据库。 数据库包含一些视图,并且在通常的 CREATE VIEW 命令之前 有一个 CREATE TABLE 命令,带有注释“视图 viewName 的替代结构”。
为什么要使用这种替代结构?
注意:除非删除替代结构,否则从导出的文件导入会失败。
【问题讨论】:
标签: mysql phpmyadmin
我们一直在使用 phpmyadmin 4 导出数据库。 数据库包含一些视图,并且在通常的 CREATE VIEW 命令之前 有一个 CREATE TABLE 命令,带有注释“视图 viewName 的替代结构”。
为什么要使用这种替代结构?
注意:除非删除替代结构,否则从导出的文件导入会失败。
【问题讨论】:
标签: mysql phpmyadmin
“替代”或“替代”结构是从视图创建的表,其结构与视图相同。 它用于确保在导出多个相互依赖的视图时满足依赖关系。
如果存在替代结构,我不确定为什么导出会失败(具有这些结构的含义实际上是相反的),但过程中可能存在错误。我必须查看导出文件的相关部分才能真正了解。
phpmyadmin sourceforge 网站在错误 #3846 (http://sourceforge.net/p/phpmyadmin/bugs/3846/) 中提到了替代结构的使用:
导出时,phpMyAdmin 为视图创建一个替代结构(使用 CREATE TABLE),然后它会删除该表并使用 CREATE VIEW。
在 cmets 中还有另一个参考 phpmyadmin bug #11711 on github (https://github.com/phpmyadmin/phpmyadmin/commit/2f2b505):
视图 A 可能依赖于下面定义的另一个视图 B,因此如果我们不使用替身,视图 A 创建将失败。依赖关系可能比这更复杂,所以我们使用替代计算所有依赖关系,而不是计算所有依赖关系。
【讨论】: