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