ИЗМЕНЕНИЕ БАЗЫ ДАННЫХ
Изменяет базу данных, изменяя её общие характеристики.
Синтаксис
ALTER {DATABASE | SCHEMA} [db_name]
alter_specification ...
ALTER {DATABASE | SCHEMA} db_name
UPGRADE DATA DIRECTORY NAME
alter_specification:
[DEFAULT] CHARACTER SET [=] charset_name
| [DEFAULT] COLLATE [=] collation_name
| COMMENT [=] 'comment'
Описание
ALTER DATABASE позволяет изменить общие характеристики базы данных. Эти характеристики хранятся в файле db.opt в каталоге базы данных. Для использования ALTER DATABASE, вам требуется привилегия ALTER на базе данных. ALTER SCHEMA является синонимом для ALTER DATABASE.
Оператор CHARACTER SET меняет кодировку символов по умолчанию для базы данных. Оператор COLLATE меняет сортировку по умолчанию для базы данных. Подробнее см. в разделе Наборы символов и сортировки.
Вы можете посмотреть доступные наборы символов и сортировки, соответственно, используя команды SHOW CHARACTER SET и SHOW COLLATION.
Изменение кодировки символов/сортировки по умолчанию для базы данных не изменяет кодировку символов/сортировку хранимых процедур или хранимых функций, которые были созданы ранее и полагались на значения по умолчанию. Для применения изменений кодировки символов/сортировки их необходимо удалить и пересоздать.
Имя базы данных может быть опущено из первого синтаксиса, в этом случае оператор применяется к базе данных по умолчанию.
Синтаксис, включающий оператор UPGRADE DATA DIRECTORY NAME был добавлен в MySQL 5.1.23. Он обновляет имя каталога, связанного с базой данных, используя кодировку, реализованную в MySQL 5.1 для сопоставления имён баз данных с именами каталогов баз данных (см. Сопоставление идентификатора и имени файла). Этот оператор предназначен для использования в следующих случаях:
- При обновлении MySQL до версии 5.1 или выше с более ранних версий.
- Для обновления имени каталога базы данных до текущего формата кодирования, если имя содержит специальные символы, которые требуют кодирования.
- Этот оператор используется инструментом mariadb-check (как вызывается mariadb-upgrade).
Например, если в базе данных MySQL 5.0 есть имя a-b-c, имя содержит символ `-`. В версии 5.0 каталог базы данных также называется a-b-c, что не обязательно безопасно для всех файловых систем. В MySQL 5.1 и выше то же имя базы данных кодируется как a@002db@002dc для создания нейтрального для файловой системы имени каталога.
При обновлении установки MySQL до 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#.
КОММЕНТАРИЙ
Начиная с MariaDB 10.5.0, можно добавить комментарий максимальной длиной 1024 байта. Если длина комментария превышает это значение, выбрасывается ошибка/предупреждение с кодом 4144. Комментарий к базе данных также добавляется в файл db.opt, а также в таблицу information_schema.schemata.
Примеры
ALTER DATABASE test CHARACTER SET='utf8' COLLATE='utf8_bin';
Начиная с MariaDB 10.5.0:
ALTER DATABASE p COMMENT='Presentations';
См. также
© 2023 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/alter-database/