データベース属性(文字セットと照合順序)を変更する(ALTER DATABASE文)

ALTER DATABASE 文を使って作成済みのデータベースの属性を変更する方法について解説します。現在変更可能な属性はデフォルトの文字セットと照合順序です。

(Last modified: )

データベースの属性を変更する

データベースの属性を変更する方法を確認します。 ALTER DATABASE 文を使います。書式は次の通りです。

ALTER DATABASE [db_name]
    alter_specification ...

alter_specification:
    [DEFAULT] CHARACTER SET [=] charset_name
  | [DEFAULT] COLLATE [=] collation_name

作成済みのデータベースに対して属性の変更を行えます。現在変更可能な属性はデフォルトの文字セットと照合順序です。

なおデータベースにおけるデフォルトの文字セットというのは、データベースにテーブルを作成した時、文字セットを指定しなかった場合に設定される文字セットです。ALTER DATABASE を使ってデフォルト文字セットを変更しても、作成済みのテーブルの文字セットが変更されません。今後新しくテーブルを作成するときにデフォルトで使用される文字セットが変更されるだけの点に注意してください。

それでは実際に変更してみます。 mydb3 データベースのデフォルトの文字セットと照合順序を変更します。現在は次のように設定されています。

select SCHEMA_NAME, DEFAULT_CHARACTER_SET_NAME, DEFAULT_COLLATION_NAME from INFORMATION_SCHEMA.SCHEMATA where SCHEMA_NAME = 'mydb3';

データベースの属性を変更する(1)

現在はデフォルトの文字コードが cp932 、デフォルトの照合順序が cp932_bin となっています。それでは mydb3 データベースのデフォルトの文字コードを utf8mb4 、照合順序を utf8mb4_0900_ai_ci に変更します。次のように実行してください。

alter database mydb3 character set utf8mb4 collate utf8mb4_0900_ai_ci;

データベースの属性を変更する(2)

変更が完了しました。それではあらためて mydb3 データベースのデフォルトの文字コードと照合順序を確認してみます。

select SCHEMA_NAME, DEFAULT_CHARACTER_SET_NAME, DEFAULT_COLLATION_NAME from INFORMATION_SCHEMA.SCHEMATA where SCHEMA_NAME = 'mydb3';

データベースの属性を変更する(3)

デフォルトの文字コードが utf8mb4 、デフォルトの照合順序が utf8mb4_0900_ai_ci に変更されたのが確認できました。

-- --

作成済みデータベースの属性を変更する手順について解説しました。

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。