首页数据库MySQL8批量修改字符集脚本怎么写(mysql批量修改字段值)

MySQL8批量修改字符集脚本怎么写(mysql批量修改字段值)

时间2023-03-29 16:35:00发布访客分类数据库浏览1399
导读:这篇“MySQL8批量修改字符集脚本怎么写”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“MySQL8批量修改字符集脚本怎么写...
这篇“MySQL8批量修改字符集脚本怎么写”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“MySQL8批量修改字符集脚本怎么写”文章吧。

从低版本迁移到MySQL 8后,可能由于字符集问题出现 Illegal mix of collations (utf8mb4_general_ci,IMPLICIT) and (utf8mb4_0900_ai_ci,IMPLICIT) 错误,此时要修改对象的字符集。

1. 批量修改库字符集

change_database_characset.sql

selectconcat('alterdatabase',schema_name,'defaultcharactersetutf8mb4collateutf8mb4_0900_ai_ci;
    ')
frominformation_schema.schemata
whereschema_namenotin('sys','mysql','performance_schema','information_schema')
andlower(default_collation_name)in('utf8mb4_general_ci','utf8_general_ci');
    

调用:

/home/mysql/mysql-8.0.16-linux-glibc2.12-x86_64/bin/mysql-uroot-h20.0.0.18-P3306-p70n6w+1XklMu-Nchange_database_characset.sql>
    change_database_characset_result.sql
/home/mysql/mysql-8.0.16-linux-glibc2.12-x86_64/bin/mysql-uroot-h20.0.0.18-P3306-p70n6w+1XklMu-fchange_database_characset_result.sql>
    change_database_characset_result.out2>
    &
    1

2. 批量修改表字符集

change_table_characset.sql

selectconcat('altertable',table_schema,'.',table_name,'defaultcharactersetutf8mb4collate=utf8mb4_0900_ai_ci;
    ')
frominformation_schema.tableswheretable_schemanotin('sys','mysql','performance_schema','information_schema')
andtable_type='BASETABLE'andlower(table_collation)in('utf8mb4_general_ci','utf8_general_ci');
    

调用:

/home/mysql/mysql-8.0.16-linux-glibc2.12-x86_64/bin/mysql-uroot-h20.0.0.18-P3306-p70n6w+1XklMu-Nchange_table_characset.sql>
    change_table_characset_result.sql
/home/mysql/mysql-8.0.16-linux-glibc2.12-x86_64/bin/mysql-uroot-h20.0.0.18-P3306-p70n6w+1XklMu-fchange_table_characset_result.sql>
    change_table_characset_result.out2>
    &
    1

3. 批量修改列字符集

change_column_characset.sql

setgroup_concat_max_len=10240;
    

selectconcat(c1,c2,';
    ')
from(selectc1,group_concat(c2)c2
from(selectconcat('altertable',t1.table_schema,'.',t1.table_name)c1,concat('modify','`',t1.column_name,'`',t1.data_type,
if(t1.data_typein('varchar','char'),concat('(',t1.character_maximum_length,')'),''),
'charactersetutf8mb4collateutf8mb4_0900_ai_ci',if(t1.is_nullable='NO','notnull','null'),'comment','''',t1.column_comment,'''')c2
frominformation_schema.columnst1,information_schema.tablest2
wheret1.table_schema=t2.table_schemaandt1.table_name=t2.table_nameandt2.table_type='BASETABLE'
andlower(t1.collation_name)in('utf8mb4_general_ci','utf8_general_ci')andt1.table_schemanotin('sys','mysql','performance_schema','information_schema'))t1
groupbyc1)t;
    

调用:

/home/mysql/mysql-8.0.16-linux-glibc2.12-x86_64/bin/mysql-uroot-h20.0.0.18-P3306-p70n6w+1XklMu-Nchange_column_characset.sql>
    change_column_characset_result.sql
/home/mysql/mysql-8.0.16-linux-glibc2.12-x86_64/bin/mysql-uroot-h20.0.0.18-P3306-p70n6w+1XklMu-fchange_column_characset_result.sql>
    change_column_characset_result.out2>
    &
    1

以上就是关于“MySQL8批量修改字符集脚本怎么写”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注行业资讯频道。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!

mysql

若转载请注明出处: MySQL8批量修改字符集脚本怎么写(mysql批量修改字段值)
本文地址: https://pptw.com/jishu/709.html
多个sheet Excel数据怎么导入数据库 Gitlab中如何优雅的拉取和合并代码(gitlab怎么拉取代码)

游客 回复需填写必要信息