MySQL视图,数据库名称前缀

问题描述

MySQL 8.X

数据库名称:db1。

在此数据库中,我创建一个视图:

CREATE VIEW vw1 AS
SELECT * FROM sometable;

当我查看视图的源代码而不是上面的代码时,我可以看到:

SELECT * FROM db1.sometable;

即MySQL引擎会自动向视图中引用的每个表添加一个数据库名称前缀。

现在,我需要将数据库从db1重命名为db2。 MySQL中没有内置的数据库重命名功能。我必须先进行备份,然后删除原始数据库,然后以新名称恢复备份。

结果:我的新db2数据库中的vw1视图试图从db1数据库中选择行(现在不存在),从而导致错误。

现在假设有100个数据库,每个数据库有100或1000个表。这个问题使事情变得绝对不可管理。

有没有任何方式来阻止MySQL在视图定义中添加数据库前缀?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)