【问题标题】:MySQL Stand-in structure for view. What is it?MySQL Stand-in 结构的视图。它是什么?
【发布时间】:2014-03-01 16:13:00
【问题描述】:

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

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

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

【问题讨论】:

    标签: mysql phpmyadmin


    【解决方案1】:

    “替代”或“替代”结构是从视图创建的表,其结构与视图相同。 它用于确保在导出多个相互依赖的视图时满足依赖关系。

    如果存在替代结构,我不确定为什么导出会失败(具有这些结构的含义实际上是相反的),但过程中可能存在错误。我必须查看导出文件的相关部分才能真正了解。

    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 创建将失败。依赖关系可能比这更复杂,所以我们使用替代计算所有依赖关系,而不是计算所有依赖关系。

    【讨论】:

    • 当视图无效(例如引用不存在的表)时,它通常无法创建替代表,但遗憾的是它会创建如下 SQL:CREATE TABLE widgets_summary ();括号中未列出任何列。
    • @PhoneixS - 老鼠!感谢您的提醒 - 我已经用更强大的东西替换了那个参考。
    猜你喜欢
    • 1970-01-01
    • 2011-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-08
    • 2011-09-03
    相关资源
    最近更新 更多