Имена таблиц, чувствительных к mysql в запросах

У меня есть php-код, где первые буквы имен таблиц базы данных имеют заглавную букву, где имена таблиц в базе данных находятся в нижнем регистре.

Какую глобальную настройку следует использовать, чтобы в каждом файле кода не было необходимости изменять имена таблиц в том же случае, что и в базе данных.

Ответ 1

Метаданные MySQL по умолчанию чувствительны к регистру в Linux. То есть, если у вас есть таблица my_table, в нижнем регистре, то

select * from my_table

будет успешным, если

select * from my_table

не удастся с какой-то таблицей, не существует сообщения.

Если вы хотите, чтобы оба оператора были успешными, вам нужно поставить следующую строку lower_case_table_names = 1 в вашем /etc/my.cnf или где бы вы не сохраняли свою конфигурацию MySQL. Не забудьте добавить системную переменную в раздел [mysqld] конфигурационного файла.

Ответ 2

Вам нужно проверить идентификатор mysql:

 lower_case_table_names

Вам нужно проверить файл my.ini, расположенный в каталоге mysql. Подробнее о исходных и целевых операционных системах:

http://dev.mysql.com/doc/refman/5.0/en/identifier-case-sensitivity.html

ВЫКЛЮЧЕНА ИЗ URL ВЫШЕ:

Если вы используете MySQL только на одной платформе, вы обычно не имеете для изменения переменной lower_case_table_names из значения по умолчанию. Однако вы можете столкнуться с трудностями, если хотите перенести таблицы между платформами, которые отличаются чувствительностью к регистру файловой системы. Для Например, в Unix вы можете иметь две разные таблицы с именем my_table и MY_TABLE, но в Windows эти два имени считаются идентичными. к избегать проблем передачи данных, возникающих из буквенного регистра базы данных или имена таблиц, у вас есть два варианта:

Use lower_case_table_names=1 on all systems. The main disadvantage with this is that when you use SHOW TABLES or SHOW DATABASES, you do

не видят имена в их исходном буклете.

Use lower_case_table_names=0 on Unix and lower_case_table_names=2 on Windows. This preserves the lettercase of database and table names.

Недостатком этого является то, что вы должны убедиться, что ваши заявления всегда ссылайтесь на свою базу данных и имена таблиц с правильными регистр букв в Windows. Если вы передадите свои заявления в Unix, где регистр букв является значительным, они не работают, если буква неверно.