目錄
一奴愉、問(wèn)題
二欠气、修改字符集
三职辨、修改庫(kù)字符集和排序規(guī)則
四盗蟆、修改表和字段字符集以及排序規(guī)則
1、查詢并生成修改語(yǔ)句
2舒裤、生成簡(jiǎn)潔的修改表以及字段字符集和排序規(guī)則的語(yǔ)句
一喳资、問(wèn)題
? ? ? ? 由于建庫(kù)建表指定的數(shù)據(jù)庫(kù)字符集和排序規(guī)則,和應(yīng)用需求不一致腾供,導(dǎo)致系統(tǒng)因字符集不一致異常仆邓。
二鲜滩、修改字符集
? ? ? ? 該生產(chǎn)庫(kù)使用MySQL8.0版本,使用的默認(rèn)字符集為:utf8mb4 ;使用的排序規(guī)則是: utf8mb4_0900_ai_ci节值。
? ? ? ? 通過(guò)測(cè)試驗(yàn)證和評(píng)估徙硅,需要修改該生產(chǎn)庫(kù)庫(kù)、表和字段的排序規(guī)則為utf8mb4_general_ci和自字符集為utf8mb4搞疗。
? ? ? ? 查看庫(kù)嗓蘑、表以及字段的字符集和排序規(guī)則命令
-- 查看庫(kù)、表以及字段的字符集和排序規(guī)則命令
-- 方法一
-- 1匿乃、查看指定庫(kù)排序規(guī)則和字符集
show create database '庫(kù)名字';
-- 2桩皿、查看指定表以及排序規(guī)則和字符集
show create table '表明字';
-- 方法二
select * from? information_schema.`TABLES` where TABLE_SCHEMA='庫(kù)名字' and tables='表名字'
select * from? information_schema.`COLUMNS` where TABLE_SCHEMA='庫(kù)名字' and tables='表名字'
三、修改庫(kù)字符集和排序規(guī)則
-- 修改庫(kù)的排序規(guī)則和字符集
ALTER database '庫(kù)名' DEFAULT CHARSET utf8mb4 COLLATE utf8mb4_general_ci;
四扳埂、修改表和字段字符集以及排序規(guī)則
1业簿、查詢并生成修改語(yǔ)句
-- 1、查看需要修改字符集和排序規(guī)則的表
SELECT
? ? TABLE_SCHEMA AS '數(shù)據(jù)庫(kù)',
? ? TABLE_NAME AS '表',
? ? TABLE_COLLATION AS '原排序規(guī)則',
? ? 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 = '庫(kù)名字';
-- 2阳懂、查看需要修改字符集和排序規(guī)則的字段
SELECT
? ? TABLE_SCHEMA AS '數(shù)據(jù)庫(kù)',
? ? TABLE_NAME AS '表',
? ? COLUMN_NAME AS '字段',
? ? CHARACTER_SET_NAME AS '原字符集',
? ? COLLATION_NAME AS '原排序規(guī)則',
? ? 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 = '庫(kù)名字';
2梅尤、生成簡(jiǎn)潔的修改表以及字段字符集和排序規(guī)則的語(yǔ)句
-- 1、生成修改表 的字符集和排序規(guī)則的SQL語(yǔ)句
SELECT? ? 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 = '庫(kù)名字';
-- 2岩调、生成修改字段 的字符集和排序規(guī)則的SQL語(yǔ)句
SELECT? ? 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 = '庫(kù)名字';
文章知識(shí)
————————————————
版權(quán)聲明:本文為CSDN博主「@土豆」的原創(chuàng)文章巷燥,遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請(qǐng)附上原文出處鏈接及本聲明号枕。
原文鏈接:https://blog.csdn.net/weixin_44770684/article/details/127006877