首页 » PHP教程 » phpmysql批量修正技巧_面试官若何批量修改mysql表字段表数据库字符集和排序规则

phpmysql批量修正技巧_面试官若何批量修改mysql表字段表数据库字符集和排序规则

duote123 2024-11-21 0

扫一扫用手机浏览

文章目录 [+]

改动顺序是字段级别>表级别>库级别。

一、批量修正全体数据库字符集(字段级别)

统一将字符字符集变成utf8_general_ci

phpmysql批量修正技巧_面试官若何批量修改mysql表字段表数据库字符集和排序规则

SELECT TABLE_SCHEMA '数据库', TABLE_NAME '表', COLUMN_NAME '字段', CHARACTER_SET_NAME '原字符集', COLLATION_NAME '原排序规则', CONCAT( 'ALTER TABLE ', TABLE_SCHEMA, '.', TABLE_NAME, ' MODIFY COLUMN ', COLUMN_NAME, ' ', COLUMN_TYPE, ' CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;' ) '改动SQL' FROM information_schema.`COLUMNS` WHERE TABLE_SCHEMA = 'lcpdb1' AND CHARACTER_SET_NAME = 'utf8';

utf8是我demo的模糊匹配排序规则,这里须要更换为你数据库中须要更换的字段的排序规则,utf8mb4设置的是更换的字符集,utf8mb4_general_ci设置的是更换的排序规则,可以换为须要改动为什么标准

phpmysql批量修正技巧_面试官若何批量修改mysql表字段表数据库字符集和排序规则
(图片来自网络侵删)

二、批量修正全体数据库字符集(表级别)

1、创建批量修正语句

修正单个表的字符集的命令是:alter table 表名 convert to character set utf8mb4 collate utf8mb4_bin;

创建修正语句的命令是:

SELECT TABLE_SCHEMA '数据库', TABLE_NAME '表', TABLE_COLLATION '原排序规则', CONCAT( 'ALTER TABLE ', TABLE_SCHEMA, '.', TABLE_NAME, ' COLLATE=utf8mb4_general_ci;' ) '改动SQL' FROM information_schema.`TABLES` WHERE TABLE_SCHEMA = 'lcpdb1' AND TABLE_COLLATION = 'utf8_general_ci';

将上面的改动SQL语句批量复制,然后全部实行。

三、批量修正多个数据库字符集(库级别)

1、找出MySQL实例中字符集不是utf8mb4的数据库

SELECT FROM information_schema.`SCHEMATA` WHERE DEFAULT_COLLATION_NAME<>'utf8_general_ci';

2、批量修正

SELECT SCHEMA_NAME '数据库', DEFAULT_CHARACTER_SET_NAME '原字符集', DEFAULT_COLLATION_NAME '原排序规则', CONCAT( 'ALTER DATABASE ', SCHEMA_NAME, ' CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;' ) '改动SQL' FROM information_schema.`SCHEMATA` WHERE DEFAULT_CHARACTER_SET_NAME='utf8';

以为有用的朋友多帮忙转发哦!
后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注下~

相关文章

介绍白点控制之路,从原理到方法

白点,作为生活中常见的现象,无处不在。对于如何控制白点,许多人却感到困惑。本文将从原理出发,探讨白点的控制方法,并结合实际案例,为...

PHP教程 2025-01-03 阅读1 评论0

介绍直播王者,如何开启你的电竞直播之旅

随着电竞产业的蓬勃发展,越来越多的年轻人投身于电竞直播行业。王者荣耀作为一款备受欢迎的MOBA手游,吸引了大量玩家和观众。如何开启...

PHP教程 2025-01-03 阅读1 评论0