¿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 en minúsculas. Cuando despliegue el servidor de prueba en nuestro centro de datos, los nombres de las tablas parecen comenzar con una letra mayúscula.
Los servidores que utilizamos están todos en Ubuntu.
mysql
case-sensitive
mysql5
benstpierre
fuente
fuente
Respuestas:
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.
Se puede configurar cómo se almacenan los nombres de las tablas en el disco utilizando la variable del sistema
lower_case_table_names
(en el archivo de configuración my.cnf en [mysqld]).Lea la sección: 10.2.2 Identificador de mayúsculas y minúsculas para obtener más información.
fuente
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 lower_case_table_names en 1
esto hará que todas sus tablas sean minúsculas, sin importar cómo las escriba
fuente
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.
fuente
Depende de la
lower_case_table_names
variable del sistema:Hay tres valores posibles para esto:
0
- el maletín especificado en la declaraciónCREATE TABLE
oCREATE DATABASE
. 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ónCREATE TABLE
orCREATE 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
fuente
Localizar archivo en
/etc/mysql/my.cnf
Edite el archivo agregando las siguientes líneas:
[mysqld]
lower_case_table_names=1
sudo /etc/init.d/mysql restart
corre
mysqladmin -u root -p variables | grep table
para comprobar quelower_case_table_names
es1
ahoraEs posible que deba volver a crear estas tablas para que funcione
fuente