目次
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