This is a read-only copy of the MariaDB Knowledgebase generated on 2024-12-22. For the latest, interactive version please visit https://mariadb.com/kb/.

ALTER DATABASE

Sintaxe:

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

Descrição:

ALTER DATABASE permite a você mudar as caracteristicas globais de um banco de dados. Estas caracteristicas estão armazenadas no arquivo db.opt no diretório do banco de dados. Para usar ALTER DATABASE, você precisa do privilégio ALTER no banco de dados. ALTER SCHEMA é um sinônimo para ALTER DATABASE.

A cláusula CHARACTER SET altera o conjunto de caracteres padrão do banco. A cláusula COLLATE muda o agrupamento padrão do banco de dados. http://dev.mysql.com/doc/refman/5.1/en/charset.html, discute o conjunto de caracteres e os nomes de agrupamento.

Você pode ver que conjuntos de caracteres e agrupamentos estão disponíveis usando, respectivamente, as instruções SHOW CHARECTER SET e SHOW COLLATION. Veja [HELP SHOW CHARACTER SET], e [HELP SHOW COLLATION], para mais informações.

O nome do banco de dados pode ser omitido na primeira sintaxe, em cujo caso a instrução aplica ao banco de dados padrão.

A sintaxe que inclui a cláusula UPGRADE DATA DIRECTORY NAME foi adicionada no MySQL 5.1.23. Esta atualiza o nome do diretório associado com o banco de dados para usar a codificação implementada no MySQL 5.1 para mapear nomes de bancos para o diretório de nomes do banco de dados (veja http://dev.mysql.com/doc/refman/5.1/en/identifier-mapping.html). Esta cláusula é para ser usada sob as seguintes condições:

  • Pretende-se ao atualizar MySQL para 5.1 ou posterior desde versões mais antigas.
  • Destinada a atualizar o nome do diretório do banco de dados para o formato de codificação atual se o nome conter caracteres especiais que precisam ser codificados.
  • A instrução é usada pelo mysqlcheck (como sendo invocada por mysql_upgrade).

Por exemplo, se um banco de dados no MySQL 5.0 tem o nome a-b-c, o nome contém uma instância do caracter '-'. Na versão 5.0, o diretório do banco de dados também se chama a-b-c, o que não é necessáriamente seguro para todos os sistemas de arquivo. No MySQL 5.1 e posteriores, o mesmo nome do banco de dados é codificado como a@002db@002dc para produzir um nome de diretório neutro respeito ao sistema de arquivos.

Quando uma instalação MySQL é atualizada para MySQL 5.1 ou posterior desde uma versão mais antiga, um nome como a-b-c (o qual está no formato antigo) o servidor o mostra como #mysql50#a-b-c, e você deve se referir ao nome usando o prefixo #mysql50#. Use UPGRADE DATA DIRECTORY NAME neste caso para dizer-lhe ao servidor que recodifique o nome do diretório do banco de dados para o formato de codificação atual:

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

Após executar esta instrução, você pode se referir ao banco de dados como a-b-c sem o prefixo especial #mysql50#.

Veja também:

Content reproduced on this site is the property of its respective owners, and this content is not reviewed in advance by MariaDB. The views, information and opinions expressed by this content do not necessarily represent those of MariaDB or any other party.