mysql 中的表别名(或“符号链接”)

mysql 中的表别名(或“符号链接”)

在 MySQL5.1 中,有没有办法让一个表可以通过两个不同的名称访问?我正在考虑类似 Linux 文件系统上的符号链接之类的东西。

我知道有

CREATE VIEW myview AS SELECT * FrOM mytable

事情,但我不仅需要从两个名称中进行选择,还需要删除等...

您可能会问,我为什么要这样做?这是为了让一个商业的、闭源的应用程序运行起来,这个应用程序的编程很糟糕(通常,表名都是小写的,但偶尔,它们会为同一个表使用大写名称......)。哦,那将是另一个想法:有没有办法告诉 MySQL 不要关心表名的大写(就像在 Windows 文件系统上一样?)?这也可以解决问题......

... 找到了答案:lower_case_table_names,一个变量。由于这是我的问题的解决方案,但不是我的问题的答案(这仍然很有趣),所以我还没有回答我自己的问题...

感谢您的见解!

A。

答案1

考虑研究lower_case_table_names系统变量。

答案2

类似以下的抽象层MySQL 代理可以提供帮助。

答案3

看来您可以在 mysql 5.0 中创建可更新视图。检查这里,并在页面中搜索“可更新”。

我不是 mysql 内部专家,但我认为简单的符号链接或硬链接将导致疯狂。mysql 可能按文件名缓存表文件状态,并且如果两个文件指向相同的数据,则可能最终出现这样的情况:mysql 会更改一个“名称”的数据文件,但不会更改另一个,从而导致公然的损坏。

答案4

我认为 mysql 的联合表可能是您潜在问题的答案。虽然性能不是最佳,但我认为如果您创建一个指向本地主机上现有表的联合表,它就会起作用。

相关内容