Отправить заявку

MySQL: влияние регистра букв в названии таблиц и БД

продвижение сайта

Очень многие веб-разработчики работают на компьютерах под управлением операционной системы семейства Windows и не замечали проблемы с запросами не скопировав сайт на хостинг под управлением на *nix.
Вот тут и начинаются все беды. Запросы выдают ошибки, а локально все работает. Все потому, что имя таблицы или базы начинается с заглавной буквы. Уже долгое время среди разработчиков и тех занимается продвижением сайта ведутся споры - должны ли системы как локальные операционные так и поисковые зависеть от регистра символов?

Для примера создадим таблицу с заглавной буквой:

CREATE TABLE `Table_test` (
   `id` INT(11) NULL AUTO_INCREMENT,
   PRIMARY KEY (`id`)
) COLLATE=utf8_general_ci ENGINE=MyISAM

Сервер создаст файл с именем Table_test и при обращении к этой таблице запросом

SELECT `id` FROM `Table_test`;

обратится к файловой системе за файлом Table_test. В семействе Windows имена файлов регистронезависимые, а в *nix все наоборот.

По этому на *nix системе при запросе

SELECT `id` FROM `table_test`;

сервер отдаст ошибку, а в Windows запрос будет рабочим на все 100%.

Решение придумали сами создатели MySQL. Для игнорирования регистра в запросе есть переменная lower_case_table_names, которую необходимо внести в my.ini

Другие публикации