Spec-Zone.ru › MySQL 5.7

13.1.1 Оператор ALTER DATABASE

ALTER {DATABASE | SCHEMA} [db_name]
    alter_option ...
ALTER {DATABASE | SCHEMA} db_name
    UPGRADE DATA DIRECTORY NAME

alter_option: {
    [DEFAULT] CHARACTER SET [=] charset_name
  | [DEFAULT] COLLATE [=] collation_name
}

ALTER DATABASE позволяет изменить общие характеристики базы данных. Эти характеристики хранятся в файле db.opt в каталоге базы данных. Для этого оператора требуется привилегия ALTER на базе данных. ALTER SCHEMA является синонимом для ALTER DATABASE.

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

  • Набор символов и правила сортировки

  • Обновление с версий, более ранних чем MySQL 5.1

Набор символов и правила сортировки

Оператор CHARACTER SET изменяет набор символов по умолчанию для базы данных. Оператор COLLATE изменяет правила сортировки по умолчанию для базы данных. Сведения о именах наборов символов и правил сортировки см. в Главе 10, Наборы символов, правила сортировки, Unicode.

Чтобы увидеть доступные наборы символов и правила сортировки, используйте операторы SHOW CHARACTER SET и SHOW COLLATION соответственно. См. Раздел 13.7.5.3, «Оператор SHOW CHARACTER SET» и Раздел 13.7.5.4, «Оператор SHOW COLLATION».

Хранимые процедуры, которые используют значения по умолчанию базы данных при создании, включают эти значения в определение. (В хранимых процедурах переменные с типами данных символьных строк используют значения по умолчанию базы данных, если набор символов или правило сортировки не указаны явно. См. Раздел 13.1.16, «Операторы CREATE PROCEDURE и CREATE FUNCTION»). Если вы измените набор символов или правило сортировки по умолчанию для базы данных, любые хранимые процедуры, которые должны использовать новые значения по умолчанию, необходимо удалить и пересоздать.

Обновление с версий, более ранних чем MySQL 5.1

Синтаксис, который включает оператор UPGRADE DATA DIRECTORY NAME, обновляет имя каталога, связанного с базой данных, чтобы использовать кодировку, реализованную в MySQL 5.1 для сопоставления имен баз данных с именами каталогов баз данных (см. Раздел 9.2.4, «Сопоставление идентификаторов с именами файлов»). Этот оператор предназначен для следующих случаев:

  • Предназначен для обновления MySQL до версии 5.1 или выше с более ранних версий.

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

  • Используется оператором mysqlcheck (вызванным оператором mysql_upgrade).

Например, если база данных в MySQL 5.0 имеет имя a-b-c, имя содержит экземпляры символа - (дефис). В MySQL 5.0 каталог базы данных также называется a-b-c, что не обязательно безопасно для всех файловых систем. В MySQL 5.1 и более поздних версиях то же имя базы данных кодируется как a@002db@002dc для получения нейтрального имени каталога для файловых систем.

При обновлении установки MySQL до версии 5.1 или более поздней с более ранней версии сервер отображает имя, например, a-b-c (которое имеет старый формат) как #mysql50#a-b-c, и вам необходимо обратиться к имени с использованием префикса #mysql50#. В этом случае используйте UPGRADE DATA DIRECTORY NAME, чтобы явно указать серверу повторно закодировать имя каталога базы данных в текущий формат кодирования:

ALTER DATABASE `#mysql50#a-b-c` UPGRADE DATA DIRECTORY NAME;

После выполнения этого оператора вы можете обращаться к базе данных как a-b-c без специального префикса #mysql50#.

Примечание

Оператор UPGRADE DATA DIRECTORY NAME устарел в MySQL 5.7 и удалён в MySQL 8.0. Если необходимо преобразовать имена баз данных или таблиц MySQL 5.0, можно обновить установку MySQL 5.0 до MySQL 5.1 перед обновлением до MySQL 8.0.

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-5.7-en/alter-database.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API