Уеб библиотека

В MySQL базите данни съответстват на поддиректориите на директорията с данни. Таблиците в базата данни съответстват на поне един файл в поддиректория (и вероятно повече файлове, в зависимост от използвания механизъм за съхранение). Следователно, зависимостта от делата на базовите имена на файлове и директории на операционната система определя зависимостта на делата на имената на базата данни и таблици. Това означава, че имената на бази и таблици не са чувствителни към малки и малки букви в Windows, но го правят.­се предлагат в повечето варианти на Unix. Едно забележително изключение е Mac OS X, който е базиран на Unix, но използва файловата система по подразбиране (HFS +), която не чувствителна към малки и големи букви. Mac OS X обаче поддържа и UFS томове, които имат имена, чувствителни на малки и малки букви, като всяка система на Unix. Вижте раздела за стандарти, с които MySQL отговаря
На бележка!
* Въпреки че имената на бази данни и таблици не са чувствителни към малки и големи букви в някои дъски-
• f формуляри, не трябва да имате достъп до база данни или таблица, използвайки различни регистри, в
т. в рамките на една заявка. Следващата заявка няма да работи, защото се отнася до раздела-
th face и kaktu_1: да, и какKMU_TAVIE:
Mysql SELECT * ОТ my_table WHERE MYJTABLE.col = l;
Имената на колоните, индексите и псевдонимите на колоните не са чувствителни към регистрите на която и да е платформа.
Псевдонимите на таблиците бяха чувствителни към малки и малки букви преди MySQL 4.1.1. последвам­Тази заявка няма да работи, защото се отнася към псевдонима както като a, така и като:
mysql ИЗБЕРЕТЕ име_на колона ОТ име_на таблица КАТО a
- КЪДЕ a.column_name = 1 ИЛИ c.column_name = 2;
Ако имате затруднения с запомнянето на валидни случаи за имена на бази данни и таблици, приемете последователна конвенция, като винаги създавайте­изброяват бази данни и таблици с малки букви.

Как имената на таблиците се съхраняват на диск и се използват от MySQL - дефинирано от sys­тъмната променлива lower_case_table_names, която може да бъде зададена по време на­стартиране rayqld.
lower_case_table_names може да бъде една от следните стойности:

Значение Значение

  1. Имената на бази данни и таблици се записват на диск, като се използва посоченият случай
    в израза CREATE TABLE или CREATE DATABASE. Когато сравнявате имена, регистър
    взети предвид. Това е по подразбиране за Unix системи. Трябва да се отбележи,
    което в случай на задаване на тази стойност на 0 с помощта на опцията
    -lower_case_table_names = 0 в случай на нечувствителност при работа
    система и препращане към имената на таблици MyISAM, използвайки различни региони­
    символните низове могат да получат повредени индекси.
  2. Имената на таблиците се пазят с малки букви, а имената за сравнение са нечувствителни­
    MySQL преобразува всички имена на таблици в малки букви когато
    запазване и търсене. Това поведение се отнася и за имена на бази данни, на­
    от MySQL 4.0.2 и псевдоними на таблици от версия
    MySQL 4.1.1. Това е по подразбиране за Windows и Mac OS X системи.
  3. Имената на бази данни и таблици се записват на диск, като се използва посоченият случай
    в оператор CREATE TABLE или CREATE DATABASE, но MySQL ще ги преобразува в
    малка буква при търсене. Сравненията на имената не са чувствителни към регистъра.
    Трябва да се отбележи, че това работи само на файлови системи, чиито имена­
    rykh не са чувствителни към регистъра. Имената на таблиците InnoDB се съхраняват в дъното
    случай като малки_букви_на_таблици = l.

Задаването на lower_case_table_names на 2 е възможно от версията
MySQL4.0.18.
Ако използвате MySQL само на една платформа, обикновено не е необходимо да променяте стойността на променливата lower_case_table_names. Въпреки това може да срещнете трудности при прехвърляне на таблица между платформи, които са свързани по различни начини­към случая с символи в имена. Например в Unix можете да имате две различни таблици­имената my_table и my_table, докато в Windows тези имена се считат за еднакви. За да се избегнат проблеми с преноса, причинени от случая с имена на таблици, има два варианта:
a Използвайте lower_case_table_names = l на всички системи. Основният недостатък, свързан с това, е, че когато използвате ПОКАЖЕТЕ ТАБЛИЦИ или ПОКАЖЕТЕ БАЗИ ДАННИ, няма да видите имена в истинския им случай.

  • Използвайте Iower_case_table_names = 0 на Unix системи и Iower_case_table_names = 2 на Windows системи. Това ще запази регистъра на символите в имената на бази и таблици. Неудобството на такова решение е свързано с необходимостта да се гарантира, че за­Заявките за Windows винаги се отнасят до таблици в правилния регистър. Ако пренасяте заявки в Unix среда, където е важен случай, те няма да работят.­крадец, ако случаят не е същият.

Трябва да се отбележи, че преди да зададете на Unix имената_на_бележка_таблица на 1, първо трябва да конвертирате старите имена на бази и таблици в малки букви, преди да рестартирате mysqld.