0

Регистр в именах таблиц MySQL

Каждая таблица MySQL связана с файлом в системе. Потому при переносе проекта с Windows на рабочий *nix-хостинг нажно помнить, что под Windows имена таблиц не чувствительны к регистру, а на большинстве систем *nix чувствительны. Хорошим решением не наткнуться на эти грабли будет везде использовать строчные буквы при именовании таблиц. Тем более, что официальный мануал именно такой вариант и рекомендует. Тем не менее существует возможность влиять на то, как система работает с регистром с помощью параметра lower_case_table_names. Этот параметр может принимать три значения:

  • 0 — значение по-умолчанию на *nix-системах. Идентификаторы хранятся в том виде, в каком были указаны при создании. Имена регистрозависимы.
  • 1 — значение по умолчанию для Windows. Идентификаторы хранятся на диске в строчных буквах, имена регистронезависимы.
  • 2 — значение по умолчанию для MacOS. Идентификаторы хранятся в том виде, в каком были указаны при создании, но при поиске MySQL конвертирует их в строчные. Поиск имен регистронезависим. Это работает только на регистронезависимых системах! Таблицы InnoDB хранятся в строчных, как при lower_case_table_names=1.

Стоит добавить, что названия столбцов и индексов во всех системах регистронезависимы.

Подробнее читайте в мануале.

Copyright © 2017 — dec5e | Site design by Trevor Fitzgerald