克隆数据库时出现 Phpmyadmin 5.0.2 错误



我提前为我的英语道歉,我已经更新了mysql(5.7.30(和Phpmyadmin(5.0.2(。碰巧在复制具有不同名称的数据库时,在以前的版本中,要添加类似 databasename.tablename 之类的内容的子句中的视图不知道为什么会发生这种情况?

在以前的版本中,当克隆具有不同名称(NewEnterprise(的数据库(企业(时,视图保留其原始结构,例如:

创建查看客户付款 如 选择"ID"、"FIRST_NAME"、"LAST_NAME 来自客户;

在当前版本中,当它被克隆时,结构会发生变化,在新数据库中,视图引用前面的示例:

创建查看客户付款 如 选择"ID"、"FIRST_NAME"、"LAST_NAME 从企业.定制

哪里应该像这样的东西

创建查看客户付款 如 选择"ID"、"FIRST_NAME"、"LAST_NAME 来自NewEnterprise.custome或者

碰巧让它没有数据库的别名。 我希望我已经让自己明白了,否则请告诉我,我会尝试扩展信息

这实际上是MySQL处理视图方式的副作用 - 它们严格定义数据库,表和列名称都需要在视图中显式引用(例如,SELECT * FROM `bar`;的视图被解释并存储为SELECT `id`, `name` FROM `foo`.`bar`;。因此,即使您可能没有在视图中显式设置数据库名称甚至列名称,MySQL 也是如此存储它们。

在复制数据库时,phpMyAdmin 应该做一些有用的事情,并要求你调整这些;现在没有。我在 https://github.com/phpmyadmin/phpmyadmin/issues/16214 中添加了一个功能请求以添加该功能。

最新更新