MySQL8改库,表,字段编码及排序规则

修改数据库编码格式语句

SELECT 
CONCAT('ALTER DATABASE ',SCHEMA_NAME,' CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;') as 修改数据库编码格式语句 
FROM information_schema.`SCHEMATA`
WHERE 1=1 
AND SCHEMA_NAME = '数据库名称' #要修改的数据库名称
-- 修改所有自建库
-- AND SCHEMA_NAME NOT IN ('admindb','mysql','information_schema','performance_schema','sys'); 
AND DEFAULT_CHARACTER_SET_NAME <> 'utf8mb4'
AND (SELECT version()) REGEXP '^8' 

修改表编码格式语句


SELECT CONCAT('ALTER TABLE `', TABLE_SCHEMA, '`.`', TABLE_NAME, '` CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;') AS 修改表编码格式语句 
FROM information_schema.`TABLES` 
WHERE 1=1 
AND TABLE_SCHEMA = '数据库名称' #要修改的数据库名称
-- 修改所有自建库
-- AND TABLE_SCHEMA not IN ('admindb', 'mysql', 'information_schema', 'performance_schema', 'sys')
AND TABLE_TYPE="BASE TABLE" 
AND TABLE_COLLATION <> 'utf8mb4_general_ci';
AND (SELECT version()) REGEXP '^8' #只修改mysql8的

修改字段编码格式语句

SELECT 
CONCAT('ALTER TABLE `', table_name, '` MODIFY `', column_name, '` ', DATA_TYPE, '(', CHARACTER_MAXIMUM_LENGTH, ') CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci', (CASE WHEN IS_NULLABLE = 'NO' THEN ' NOT NULL' ELSE '' END),(case when IFNULL(column_comment,'')='' then '' else concat(' COMMENT \'' , column_comment ,'\'') end),';') as 修改字段编码格式语句 
FROM information_schema.COLUMNS 
WHERE 1=1
and TABLE_SCHEMA = '数据库名称' #要修改的数据库名称
-- 修改所有自建库
-- and TABLE_SCHEMA  NOT IN ('admindb', 'mysql', 'information_schema', 'performance_schema','sys') 
and COLLATION_NAME <>'utf8mb4_general_ci'  #被改的编码
and (SELECT version()) REGEXP '^8' #只修改mysql8的

PS: REGEXP 使用方法

### 回答1: 您可以使用以下 SQL 语句来修改 "demo_field_def_val_main" 的所有字段编码为 utf8mb4,排序规则为 utf8mb4_General_ci: ``` ALTER TABLE demo_field_def_val_main MODIFY COLUMN COLUMN_NAME VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; ``` 请注意,您需要将 `COLUMN_NAME` 替换为您要修改字段的名称。您可以多次运行该语句,以便修改中的所有字段。 ### 回答2: 要将 MySQL 中的 demo_field_def_val_main 的所有字段编码修改为 utf8mb4,并设置排序规则为 utf8mb4_general_ci, 可以按照以下步骤进行操作: 1. 进入 MySQL 的命令行终端或者使用可视化工具连接到 MySQL 数据库。 2. 切换到所需的数据库,可以使用以下命令切换数据库: ```sql USE your_database_name; ``` 3. 查看的当前字段编码排序规则,可以使用以下命令: ```sql SHOW CREATE TABLE demo_field_def_val_main; ``` 在返回的结果中,可以找到当前的字段编码排序规则的设置。 4. 确认是否需要备份数据,如果需要,请先对进行备份以防止数据丢失。 5. 修改字段编码排序规则,可以使用 ALTER TABLE 语句: ```sql ALTER TABLE demo_field_def_val_main CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; ``` 这将会将 demo_field_def_val_main 的所有字段编码修改为 utf8mb4,并设置排序规则为 utf8mb4_general_ci。 6. 确认修改是否成功,可以再次执行步骤 3 中的命令来查看的当前字段编码排序规则是否已更新为所需的设置。 请注意,在修改字段编码排序规则之后,要确保已经对数据库连接、应用程序、以及与该相关的代码进行了适当的修改和测试,以确保其兼容性和功能正常运行。 ### 回答3: 要将MySQL数据库"demo_field_def_val_main"的所有字段改为使用utf8mb4编码排序规则为utf8mb4_general_ci,可以按照以下步骤进行操作: 1. 连接到MySQL数据库。可以使用命令行工具(如MySQL客户端)或图形化工具(如phpMyAdmin)进行连接。 2. 执行以下SQL语句,将的字符集和校对规则改为utf8mb4编码,并设置排序规则为utf8mb4_general_ci: ``` ALTER TABLE demo_field_def_val_main CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; ``` 3. 如果中有索引,还需要修改索引的字符集和排序规则。执行以下SQL语句,将索引的字符集和排序规则改为utf8mb4: ``` ALTER TABLE demo_field_def_val_main MODIFY column_name VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; ``` 注意:将"column_name"替换为实际的索引列名。 4. 根据数据库的实际情况,可能还需要修改其他相关配置,如连接字符集等。可以在MySQL的配置文件中进行相应的修改。 5. 确保在修改结构之前,备份数据库数据,以避免数据丢失的风险。 以上是将MySQL"demo_field_def_val_main"的所有字段编码修改为utf8mb4,并设置排序规则为utf8mb4_general_ci的步骤。请确保在操作数据库时注意安全性和数据备份,以防止出现意外情况。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值