¿El nombre de la columna y la tabla distingue entre mayúsculas y minúsculas en MySQL?


Si tengo un nombre de columna llamado category_id y Category_Id, ¿son diferentes?

Y si tengo una tabla llamada category y Category, ¿son diferentes?

Author: Micha Wiedenmann, 2010-01-05

5 answers

En Unix, los nombres de las tablas distinguen entre mayúsculas y minúsculas. En Windows, no lo son. Divertido, ¿no? Como sus respectivos sistemas de archivos. ¿Crees que es una coincidencia?

En otras palabras, si está planeando implementar en una máquina Linux, es mejor probar su SQL contra un MySQL basado en Linux también, o estar preparado para misteriosos errores de "tabla no encontrada" en el momento de prod. Los VMS son baratos en estos días.

Los nombres de campo no distinguen mayúsculas de minúsculas.

EDITAR: estamos hablando de la sistema operativo en la máquina MySQL server , no cliente.

 66
Author: Seva Alekseyev,
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-02-21 01:14:35

De la documentación de MySQL :

Los nombres de bases de datos y tablas no distinguen entre mayúsculas y minúsculas en Windows, y sensible en la mayoría de las variedades de Unix. Una excepción notable es Mac OS X, que está basado en Unix pero utiliza un tipo de sistema de archivos predeterminado (HFS+) que no distingue entre mayúsculas y minúsculas.

Y

Los nombres de columna e índice no distinguen entre mayúsculas y minúsculas en ninguna plataforma, ni tampoco los alias de columna.

 15
Author: Anitha.y,
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-02-19 08:09:48

Para los nombres de bases de datos y tablas, depende del sistema operativo subyacente. Véase 8.2.2. Identificador de Mayúsculas y minúsculas

 5
Author: Pekka 웃,
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
2010-01-05 20:53:38

Usted podría encontrar esto necesario leer. Es posible establecer la sensibilidad de mayúsculas y minúsculas en MySQL, pero en realidad solo es un problema cuando se trabaja en múltiples entornos.

 3
Author: Vincent Ramdhanie,
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
2010-01-05 20:54:51

Extrañamente, parece distinguir entre mayúsculas y minúsculas en MySQL Workbench incluso en Windows.

Simplemente intentamos alterar los resultados de una instrucción SELECT, pero el Workbench no nos lo permitió, quejándonos de que nuestra consulta no incluía la clave principal de la tabla (lo que sí hizo, pero en minúsculas), por lo que el resultado fue de solo lectura. Ejecutar la misma consulta con la clave primaria en el caso adecuado (ID en lugar de id) nos permitiría editar los resultados como se esperaba.

 1
Author: Thomas Touzimsky,
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-07-23 14:06:33