MySQL

:: DEVELOPER ZONE

Login / Register

  • MySQL.com
  • Developer Zone
  • Partners
  • Online Shop
  • Downloads
  • Documentation
  • Forums
  • Lists
  • Bugs
  • Events
  • User Groups
  • Guilds
  • Blogs
  • Support
  • Resources
  • Books
  • FAQ

Справочное руководство по MySQL 4.0. :: 6 Справочник по языку MySQL :: 6.1 Структура языка :: 6.1.3 Чувствительность имен к регистру

  • Overview
  • MySQL Reference Manual
  • MaxDB Documentation
  • Connectors

Search the MySQL manual:


  • Справочное руководство по MySQL 4.0.

  • 6.1 Структура языка
  • 6.1.1 Литералы: представление строк и чисел
  • 6.1.2 Имена баз данных, таблиц, столбцов, индексы псевдонимы
  • 6.1.3 Чувствительность имен к регистру
  • 6.1.4 Переменные пользователя
  • 6.1.5 Системные переменные
  • 6.1.6 Синтаксис комментариев
  • 6.1.7 ``Придирчив'' ли MySQL к зарезервированным словам?

Get the MySQL Language Reference and MySQL Administrator's Guide from MySQL Press!


Additional languages

  • German


Learn about new MySQL releases, technical articles, events and more.

Subscribe to the monthly MySQL Newsletter!


Previous / Next / Up / Table of Contents

6.1.3. Чувствительность имен к регистру

В MySQL имена баз данных и таблиц соответствуют директориям и файлам внутри директорий. Следовательно, чувствительность к регистру операционной системы, под которой работает MySQL, определяет чувствительность к регистру имен баз данных и таблиц. Это означает, что имена баз данных и таблиц нечувствительны к регистру под Windows, а под большинством версий Unix проявляют чувствительность к регистру. Одно большое исключение здесь это Mac OS X, когда файловая система по умолчанию HFS+ используется. Однако Mac OS X также поддерживает тома UFS, которые чувствительны к регистру под Mac OS X также как и на Unix. See Раздел 1.9.3, «Расширения MySQL к ANSI SQL92».

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

mysql> SELECT * FROM my_table WHERE MY_TABLE.col=1;

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

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

mysql> SELECT col_name FROM tbl_name AS a
    -> WHERE a.col_name = 1 OR A.col_name = 2;

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

Одним из путей устранения этой проблемы является запуск демона mysqld с параметром -O lower_case_table_names=1. По умолчанию этот параметр имеет значение 1 для Windows и 0 для Unix.

Если значение параметра lower_case_table_names равно 1, MySQL при сохранении и поиске будет преобразовывать все имена таблиц к нижнему регистру. С версии 4.0.2 это также касается и имен баз данных. Обратите внимание на то, что при изменении этого параметра перед запуском mysqld необходимо прежде всего преобразовать имена всех старых таблиц к нижнему регистру.

При переносе MyISAM-файлов с Windows на диск в Unix в некоторых случаях будет полезна утилита mysql_fix_extensions для приведения в соответствие регистров расширений файлов в каждой указанной директории базы данных (нижний регистр .frm, верхний регистр .MYI и .MYD). Утилиту mysql_fix_extensions можно найти в подкаталоге scripts.


This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.

Top / Previous / Next / Up / Table of Contents

© 1995-2005 MySQL AB. All rights reserved.

  • About MySQL
  • Careers
  • Site Map
  • Contact Us
  • Legal
  • Privacy Policy
  • Trademark Info
  • No Software Patents!