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 "Ø".

Related Posts:

  • 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. … Read More
  • MySQL | Algumas características O MySQL é o sistema de gestão de bases de dados open source mais utilizado em todo o mundo. Quando comparado com outros sistemas de uso livre como, por exemplo, o PostgreSQL, o MySQL tem muitas vantagens das quais se referem… Read More
  • MySQL | Motor InnoDB O motor InnoDB mantém um conjunto de logs em tudo semelhante ao que faz o Oracle. Esses logs (ou registos) destinam-se a assegurar a integridade das transacções ao mesmo tempo qye optimizam o custo transaccional. Este tipo d… Read More
  • MySQL | Dicionário de dados Uma instalação de MySQL tem por defeito três bases de dados (de sistema): information_schema, mysql e performance_schema. O repositório mysql contém o dicionário de dados do sistema MySQL. Uma cópia, apenas com a função de l… Read More
  • MySQL 5.6 | Arquitectura | Parte I O superutilizador/DBA principal em MySQL denomina-se root (em Oracle é o utilizador SYS). Em MySQL uma base de dados é gerida de uma forma lógica e é o SGBDR que trata do armazenamento físico. O trabalho em SQL é controlado … Read More