sql >> データベース >  >> RDS >> Mysql

すべてのテーブルのMySQL変更照合

    さまざまなデータベース照合により、さまざまなタイプの文字をデータベースに格納できます。デフォルトでは、MySQLにはlatin1_swedish_ci照合を使用したlatin1文字セットがあります。ただし、特定のテーブル、すべてのテーブル、またはデータベース全体のMySQL照合を簡単に変更できます。 MySQLで照合を変更する方法は次のとおりです。


    MySQLのすべてのテーブルの照合を変更する方法

    MySQLで照合を変更する手順を見ていきます。


    1つのMySQLテーブルの照合を変更するSQLクエリは次のとおりです

    ALTER TABLE tbl_name 
    [[DEFAULT] CHARACTER SET charset_name] 
    [COLLATE collation_name]

    上記のクエリでは、テーブル名 tbl_nameを指定する必要があります 。オプションで、文字セット charset_nameを指定することもできます。 および照合collat​​ion_name

    ボーナスリード:フォローするトップデータベースブログ

    データベースのすべてのテーブルの照合をutf8_general_ciに変更する例を次に示します。 database_nameを置き換えます およびtable_name 以下にデータベース名とフィールド名をそれぞれ記載します。

    alter table database_name.table_name CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;

    データベース内のすべてのテーブルの照合を変更する場合は、テーブルごとに上記のクエリを個別に実行する必要があります。

    これは非常に面倒な場合があるため、データベース内のテーブルごとにALTERテーブルステートメントを生成するSELECTクエリを作成します。まず、データベース内のすべてのテーブル関連の詳細を返すSELECTクエリを次に示します。

    SELECT * FROM INFORMATION_SCHEMA.TABLES 
    WHERE TABLE_SCHEMA="database_name" 
    AND TABLE_TYPE="BASE TABLE";

    ボーナスリード:MySQLWorkbenchの上位の代替案

    上記のSELECTクエリを変更して、データベース内のテーブルごとにALTERTABLEステートメントを作成します。

    これが、データベース内のすべてのテーブルのSQLクエリを生成するselectクエリです。 database_nameを置き換えます およびcollat​​ion_name 以下にデータベースと照合名を入力し、それを実行してSQLクエリを生成し、データベース内のすべてのテーブルの照合を変更します。

    SELECT CONCAT("ALTER TABLE ", TABLE_SCHEMA, '.', TABLE_NAME," COLLATE collation_name;") AS ExecuteTheString FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA="database_name" AND TABLE_TYPE="BASE TABLE";
    

    ボーナスリード:MySQLで遅いクエリログを有効にする方法

    すべてのテーブルの照合をutf8に変更する別のSQLクエリを次に示します。

    SELECT CONCAT('ALTER TABLE ', tbl.TABLE_SCHEMA, '.', tbl.TABLE_NAME, ' CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;') FROM information_schema.TABLES
     tbl WHERE tbl.TABLE_SCHEMA = 'database_name'

    各テーブルのALTERTABLEクエリのリストを取得したら、それらをコピーして貼り付けて実行し、すべてのテーブルの照合を変更できます。

    上記の記事が、MySQLのデータベース内のすべてのテーブルの照合を変更するのに役立つことを願っています。

    1. ユーザーのmysqlサーバーにリモートアクセス許可を付与するにはどうすればよいですか?

    2. PL / PGSQLからのセッション変数(\ set var ='value')の参照

    3. sp_updatestatsを回避するもう1つの理由

    4. PL/SQLで例外を処理する方法を学ぶ