MySQL | Denominações CASE SENSITIVE

A variável lower_case_table_names condiciona a forma como o servidor de MySQL armazena e gera os nomes dos objectos da base de dados, comparando os nomes entre si e com os comandos produzidos pelos utilizadores.

Por defeito, e.g., em Windows e de modo a assegurar uma melhor interoperabilidade entre bases de dados instaladas em diferentes computadores e sistemas operativos, o valor dessa variável é "1", o que significa que todos os nomes são guardados em letra minúscula.

Para optimizar a gestão, utilização e desenho de interfaces é aconselhável que as denominações dos objectos, por exemplo tabelas e colunas, de uma base de dados sejam definidos como case sensitive. Desse modo quando se geram, e.g., mapas impressos ou ecrãs deixa de ser necessária a tarefa repetitiva de alterar as letras iniciais das denominações para letra maiúscula. Por exemplo: "número de aluno" para "Número de Aluno". Pode parecer um pormenor mas em centenas de ecrãs serão largas dezenas de horas de programação que serão poupadas.

Ao optar pelo valor "0" os nomes são guardados e comparados na forma como foram escritos; caso a variável assuma o valor "1" as denominações são armazenadas em letra minúscula e as comparações não dependem das letras serem maiúsculas ou minúsculas; se o valor for "2" os nomes são guardados como foram escritos, mas são sempre comparados em letra minúscula.

Como se altera este parâmetro?

O método mais simples e expedito é utilizar o ficheiro de configuração "my.ini" que o servidor lê cada vez que é inicializado. Basta alterar a variável lower_case_table_names para o valor pretendido (caso a variável não esteja presente então deve ser adicionada ao fim do referido ficheiro). Finalmente, é ainda necessário re-inicializar o servidor de MySQL. Em Windows, e numa instalação padrão, esse ficheiro está localizado em "C:\ProgramData\MySQL\MySQL Server X\my.ini"; em que X deve ser substituído, caso a caso, pelo número da versão de MySQL.


__________________________________________________
Nota: Em MacOS a variável tem o valor pré-definido de "2", e em Unix é de "Ø".