3.6: Чувствительность к регистру в именах в MySQL
Главная Страница » Книги по PHP » MySQL уроки для начинающих с нуля » Чувствительность к регистру в именах в MySQL
Как было сказано в главе 2, в MySQL чувствительность к регистру в именах зависит от операционной системы сервера. Базы данных и таблицы соответствуют каталогам и файлам внутри этих каталогов. Следовательно, чувствительность операционной системы определяет чувствительность к регистру имен таблицы и баз данных. Это означает, что имена баз данных и таблиц чувствительны к регистру в Unix и нечувствительны в Windows.
Несмотря на отсутствие чувствительности к регистру имен баз данных и таблиц в Windows, СУБД все же такое различие делает. Так что в рамках одного запроса надо использовать одно и то же имя. Например, этот запрос не сработает из-за одновременного применения имен таблицы my_table и MY_TABLE:
mysql> SELECT * FROM my_table WHERE MY_TABLE.col=1;
Имена столбцов нечувствительны к регистру символов во всех случаях. Псевдонимы для таблиц чувствительны к регистру. Например, этот запрос не сработает из-за одновременного применения а и А:
mysql> SELECT col_name FROM tbl_name AS a
WHERE a.col_name = 1 OR A.col_name = 2;
Псевдонимы для столбцов нечувствительны к регистру.
Если для вас проблематично запоминание имен таблиц, примите однозначное соглашение, например всегда создавать базы данных и таблицы, использующих имена нижнего регистра.