PHP скрипты

MySQL

Apache

phpMyADmin

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;

Псевдонимы для столбцов нечувствительны к регистру.

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

Поделиться с друзьями