ALTER DATABASE

Sintassi

ALTER {DATABASE | SCHEMA} [nome_db]
    specifica_alter ...
ALTER {DATABASE | SCHEMA} nome_db
    UPGRADE DATA DIRECTORY NAME

alter_specification:
    [DEFAULT] CHARACTER SET [=] nome_charset
  | [DEFAULT] COLLATE [=] nome_collation

Spiegazione

ALTER DATABASE permette di modificare le caratteristiche generali di un database. Queste sono scritte nel file db.opt nella directory del database. Per utilizzare ALTER DATABASE occorre il privilegio ALTER sul database interessato. ALTER SCHEMA è sinonimo di ALTER DATABASE.

La clausola CHARACTER SET modifica il set di caratteri di default del database. La clausola COLLATE modifica la collation di default del database. La pagina http://dev.mysql.com/doc/refman/5.1/en/charset.html illustra i set di caratteri e le collation.

E' possibile sapere quali set di caratteri e quali collation sono supportati usando, rispettivamente, le istruzioni SHOW CHARACTER SET e SHOW COLLATION. Si vedano [HELP SHOW CHARACTER SET] e [HELP SHOW COLLATION] per ulteriori informazioni.

Il nome del database può essere omesso nella prima sintassi, nel qual caso l'istruzione agirà sul database corrente.

La sintassi con la clausola UPGRADE DATA DIRECTORY NAME è stata aggiunta in MySQL 5.1.23. Aggiorna il nome della directory associata al database perché usi la codifica implementata in MySQL 5.1 per mappare i database alle directory (si veda http://dev.mysql.com/doc/refman/5.1/en/identifier-mapping.html). Questa clausola è stata pensata per i casi seguenti:

  • Per aggiornare MySQL alla versione 5.1 o successiva.
  • Per aggiornare il nome della directory del database alle codifiche attuali, se il nome contiene caratteri speciali.
  • Questa clausola è usata da mysqlcheck (anche quando invocato da mysql_upgrade).

Per esempio, se un database in MySQL 5.0 si chiama a-b-c, il nome contiene il carattere `-'. Nella versione 5.0, la directory del database era chiamata a-b-c, ma questo non è sempre sicuro su tutti i filesystem. In MySQL 5.1 e superiori, lo stesso nome viene codificato come a@002db@002dc per avere un nome che funzioni su tutti i filesystem.

Quando una installazione di MySQL viene aggiornata a MySQL 5.1 o superiori, il server mostra un nome come a-b-c (cioè nel vecchio formato) come #mysql50#a-b-c, e occorre utilizzare il nome con il prefisso #mysql50#. In questo caso, con la clausola UPGRADE DATA DIRECTORY NAME si dice espressamente al server di ri-codificare il nome della directory nel formato corrente:

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

Dopo aver eseguito questo comando, si può utilizzare il database chiamandolo a-b-c, senza il prefisso #mysql50#.

Vedi anche

Commenti

Sto caricando i commenti......
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.