Являются ли имена таблиц в регистре MySQL чувствительными к регистру?
Являются ли имена таблиц в регистре MySQL чувствительными?
На моей машине Windows dev код, который у меня есть, может запрашивать мои таблицы, которые кажутся строчными. Когда я развертываю на тестовый сервер в нашем центре данных, имена таблиц начинаются с заглавной буквы.
Серверы, которые мы используем, находятся на Ubuntu.
Ответы
Ответ 1
В целом:
Имена баз данных и таблиц не чувствительны к регистру в Windows и чувствительны к регистру в большинстве разновидностей Unix.
В MySQL базы данных соответствуют каталогам в данных каталог. Каждая таблица в базе данных соответствует, по меньшей мере, одному файл в каталоге базы данных. Следовательно, чувствительность к регистру основная операционная система играет роль в чувствительности к регистру имена баз данных и таблиц.
Можно настроить, как имена таблиц хранятся на диске с использованием системной переменной lower_case_table_names
. (в конфигурации my.cnf в разделе [mysqld])
Прочтите раздел: 10.2.2 Чувствительность регистра идентификатора для получения дополнительной информации.
Ответ 2
Имена баз данных и таблиц не чувствительны к регистру в Windows и чувствительны к регистру в большинстве разновидностей Unix или Linux.
чтобы решить проблему, установите нижние_файлы_таблицы на 1
lower_case_table_names = 1
это сделает все ваши таблицы строчными, независимо от того, как вы их пишете
Ответ 3
Имена таблиц в MySQL - это записи в файловой системе, поэтому они нечувствительны к регистру, если основная файловая система.
Ответ 4
Это зависит от системной переменной lower_case_table_names
:
show variables where Variable_name='lower_case_table_names'
Для этого есть три возможных значения:
-
0
- регистр букв, указанный в инструкции CREATE TABLE
или CREATE DATABASE
. Сравнение имен чувствительно к регистру.
-
1
. Названия таблиц хранятся в нижнем регистре на диске, а сопоставления имен не чувствительны к регистру.
-
2
- буквенный код, указанный в инструкции CREATE TABLE
или CREATE DATABASE
, но MySQL преобразует их в нижний регистр при поиске.
Сравнение имен не чувствительно к регистру.
Документация