Considere olhar para a variável de sistema lower_case_table_names
.
no MySQL5.1, existe uma maneira de tornar uma tabela acessível por dois nomes diferentes? Estou pensando em algo como um link simbólico em sistemas de arquivos linux.
Eu sei que existe o
CREATE VIEW myview AS SELECT * FrOM mytable
coisa, mas eu não preciso apenas SELECT de ambos os nomes, mas também excluir etc ...
Você pode perguntar por que eu quero fazer isso? Trata-se de conseguir que um aplicativo comercial de código fechado funcione, o que é programado por defeitos (geralmente, os nomes das tabelas são todos em letras minúsculas, mas ocasionalmente usam nomes em maiúsculas para a mesma tabela ...). Ah, isso seria outra ideia: Existe uma maneira de dizer ao MySQL para não se importar com a capitalização de nomes de tabelas (como em sistemas de arquivos do Windows?)? isso também faria o truque ...
... encontrou a resposta: lower_case_table_names, uma variável. Uma vez que esta é a solução para o meu problema, mas não a resposta à minha pergunta (que ainda é interessante), ainda não respondo à minha pergunta ...
Obrigado pela sua visão!
A.
Considere olhar para a variável de sistema lower_case_table_names
.
Uma camada de abstração como Proxy do MySQL pode ajudar aqui.
Você pode criar exibições atualizáveis no mysql 5.0, parece. Verifique aqui e pesquise na página por 'atualizável'.
Eu não sou um especialista em mysql innards, mas imagino que simplesmente o symlinking ou hard-linking terminará em loucura. O mysql provavelmente armazena em cache o estado do arquivo da tabela pelo nome do arquivo, e se 2 arquivos estão apontando @ os mesmos dados, você pode acabar em uma situação onde o mysql alterará o arquivo de dados em um 'nome', mas não o outro, resultando em corrupção flagrante.
Acho que as Tabelas Federadas do mysql podem ser uma resposta para o seu questão subjacente. Não é o melhor desempenho, mas acho que, se você criasse uma tabela federada que aponta para a tabela existente no localhost, isso funcionaria.