问题描述
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 (将#修改为@)