MySQL テーブルの文字セットと照合順序をバッチで変更する

目次

1. 問題点

次に、文字セットを変更します

3. ライブラリの文字セットと照合順序を変更する

4 番目に、テーブルとフィールドの文字セットと照合順序を変更します。

1. 変更ステートメントのクエリと生成

2. テーブルとフィールドの文字セットと照合順序を変更するための簡潔なステートメントを生成します。

1. 問題
        点 データベースやテーブルを構築する際に指定したデータベースのキャラクタセットやソートルールがアプリケーションの要件と一致していないため、キャラクタセットの不一致によりシステムが異常となります。

2. 文字セットを変更する
        実稼働ライブラリは MySQL8.0 バージョンを使用し、使用されるデフォルトの文字セットは utf8mb4、使用される照合規則は utf8mb4_0900_ai_ci です。

        テストの検証と評価を通じて、実稼働ライブラリ、テーブル、およびフィールドの照合順序を utf8mb4_general_ci に、文字セットを utf8mb4 に変更する必要があります。

        ライブラリ、テーブル、フィールドの文字セットと照合コマンドを表示する

-- ライブラリ、テーブル、およびフィールドの文字セットと照合順序を表示するコマンド
 
-- 方法 1
 
-- 1. 指定したライブラリの照合順序と文字セットを表示する
 
show create database 'library name';
 
 
-- 2. 指定したテーブルと照合順序を表示するおよび文字セット
 
show create table 'show word';
 
 
-- 方法 2
 
select * from information_schema.`TABLES` where TABLE_SCHEMA='ライブラリ名' and tables='テーブル名'
 
select * from information_schema.`COLUMNS` where TABLE_SCHEMA='library name ' および tables='テーブル名'

3. ライブラリの文字セットと照合順序を変更します
-- ライブラリの照合順序と文字セットを変更します
ALTER データベース 'ライブラリ名' DEFAULT CHARSET utf8mb4 COLLATE utf8mb4_general_ci;
4. テーブルとフィールドの文字セットと照合順序を変更します
1. クエリと生成変更
ステートメント - - 1. 文字セットと照合順序を変更する必要があるテーブルを表示します。
SELECT
    TABLE_SCHEMA AS 'database',
    TABLE_NAME AS 'table',
    TABLE_COLLATION AS 'original照合',
    CONCAT('ALTER TABLE ', TABLE_SCHEMA, '. ', TABLE_NAME, ' DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;') AS '修正SQL'
FROM
    information_schema.`TABLES`
WHERE
    TABLE_COLLATION = 'utf8mb4_0900_ai_ci' AND TABLE_SCHEMA = 'ライブラリ名';
 
 
-- 2. 変更する必要があるフィールドを表示します。文字セットと照合順序
SELECT
    TABLE _SCHEMA AS 'Database'、
    TABLE_NAME AS 'テーブル'、
    COLUMN_NAME AS 'フィールド'、
    CHARACTER_SET_NAME AS '元の文字セット',
    COLLATION_NAME AS '元の照合順序',
    CONCAT('ALTER TABLE ', TABLE_SCHEMA, '.', TABLE_NAME, ' MODIFY COLUMN `', COLUMN_NAME, '` ', COLUMN_TYPE, ' CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci ;') AS '修正 SQL'
FROM
    information_schema.`COLUMNS`
WHERE
    CHARACTER_SET_NAME = 'utf8mb4' AND COLLATION_NAME != 'utf8mb4_general_ci' AND TABLE_SCHEMA = 'ライブラリ名';

2. テーブルとフィールドの文字セットと照合順序を変更するための簡潔なステートメントを生成します
-- 1. テーブルの文字セットと照合順序を変更するための SQL ステートメントを生成します
 
SELECT CONCAT('ALTER TABLE ', TABLE_SCHEMA, '.', TABLE_NAME, ' DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;') AS 'amend SQL'
FROM
    information_schema.`TABLES`
WHERE
    TABLE_COLLATION = 'utf8mb4_0900_ai_ci' AND TABLE_SCHEMA = 'ライブラリ名'; -- 2.
 
 
フィールド CONCAT( の文字セットと照合順序を変更するための
SQL ステートメント SELECT を生成します。 'ALTER TABLE ', TABLE_SCHEMA, '.', TABLE_NAME, ' MODIFY COLUMN `', COLUMN_NAME, '` ', COLUMN_TYPE, ' CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;') AS 'SQL を変更' FROM information_schema. ` COLUMNS`
WHERE
    CHARACTER_SET_
名前
    = 'utf8mb4' と COLLATION_NAME != 'utf8mb4_general_ci' AND TABLE_SCHEMA = 'ライブラリ名';

記事の知識
———————————————
著作権表示: この記事は CSDN ブロガー「@蜜豆」のオリジナル記事であり、CC 4.0 BY-SA 著作権規約に従っており、オリジナルを添付してください転載元のリンクとこの声明。
元のリンク: https://blog.csdn.net/weixin_44770684/article/details/127006877

おすすめ

転載: blog.csdn.net/zhongguowangzhan/article/details/128499165
おすすめ