¿Los nombres de tabla en MySQL distinguen entre mayúsculas y minúsculas?


¿ Los nombres de tabla en MySQL distinguen entre mayúsculas y minúsculas?

En mi máquina de desarrollo de Windows el código que tengo es capaz de consultar mis tablas que parecen estar todas en minúsculas. Cuando implemente en el servidor de prueba en nuestro centro de datos, los nombres de las tablas parecen comenzar con una letra mayúscula.

Los servidores que usamos están todos en Ubuntu.

Author: zx8754, 2011-05-26

5 answers

En General:

Los nombres de bases de datos y tablas no distinguen entre mayúsculas y minúsculas en Windows, y distinguen entre mayúsculas y minúsculas en la mayoría de las variedades de Unix.

En MySQL, las bases de datos corresponden a directorios dentro de los datos directorio. Cada tabla dentro de una base de datos corresponde al menos a una archivo dentro del directorio de la base de datos. En consecuencia, la sensibilidad de las mayúsculas y minúsculas el sistema operativo subyacente juega un papel en la sensibilidad de mayúsculas y minúsculas de nombres de bases de datos y tablas.

Uno puede configurar cómo se almacenan los nombres de las tablas en el disco utilizando la variable de sistema lower_case_table_names. (in my.cnf configuración bajo [mysqld])

Lea la sección: 10.2.2 Identificador de mayúsculas y minúsculas para obtener más información.

 151
Author: CloudyMarble,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-10-24 06:18:32

Los nombres de bases de datos y tablas no distinguen entre mayúsculas y minúsculas en Windows, y distinguen entre mayúsculas y minúsculas en la mayoría de las variedades de Unix o Linux.

Para resolver el problema, establezca el valor lower_case_table_names en 1

Lower_case_table_names = 1

Esto hará que todas tus tablas estén en minúsculas, sin importar cómo las escribas

 87
Author: StephenLembert,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-05-26 05:51:02

Los nombres de tabla en MySQL son entradas del sistema de archivos, por lo que no distinguen entre mayúsculas y minúsculas si el sistema de archivos subyacente lo es.

 17
Author: Oswald,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-08-01 04:53:52

Depende de lower_case_table_names variable del sistema:

show variables where Variable_name='lower_case_table_names'

Hay tres valores posibles para esto:

  • 0 - lettercase especificado en el CREATE TABLE o CREATE DATABASE instrucción. Las comparaciones de nombres distinguen entre mayúsculas y minúsculas.
  • 1 - Los nombres de las tablas se almacenan en minúsculas en el disco y las comparaciones de nombres no distinguen entre mayúsculas y minúsculas.
  • 2 - lettercase especificado en la instrucción CREATE TABLE o CREATE DATABASE, pero MySQL los convierte a minúsculas en la búsqueda. Las comparaciones de nombres no distinguen entre mayúsculas y minúsculas.

Documentación

 9
Author: Raman Sahasi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-06-26 04:24:49
  1. Localizar archivo en /etc/mysql/my.cnf

  2. Edite el archivo añadiendo las siguientes líneas:

    [mysqld]

    lower_case_table_names=1

  3. sudo /etc/init.d/mysql restart

  4. Ejecutar mysqladmin -u root -p variables | grep table para comprobar que lower_case_table_names es 1 ahora

Es posible que tenga que volver a crear estas tablas para que funcione

 2
Author: sendon1982,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-01-20 10:25:24