修改MySql中数据表和字段的字符集和排序规则

用法:先执行如下脚本生成修改数据表和表字段的脚本,然后再执行这些生成的脚本。

1. 修改指定数据库中所有varchar类型的表字段的字符集为UTF8,并将排序规则修改为utf8_general_ci

SELECT CONCAT('ALTER TABLE `', table_name, '` MODIFY `', column_name, '` ', DATA_TYPE, '(', CHARACTER_MAXIMUM_LENGTH, ') CHARACTER SET UTF8 COLLATE utf8_general_ci', (CASE WHEN IS_NULLABLE = 'NO' THEN ' NOT NULL' ELSE '' END), ';')
FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = 'databaseName'
AND DATA_TYPE = 'varchar'
AND
(
    CHARACTER_SET_NAME != 'utf8'
    OR
    COLLATION_NAME != 'utf8_general_ci'
);

2. 修改指定数据库中所有数据表的字符集为UTF8,并将排序规则修改为utf8_general_ci
SELECT CONCAT('ALTER TABLE ', table_name, ' CONVERT TO CHARACTER SET  utf8 COLLATE utf8_unicode_ci;')
FROM information_schema.TABLES
WHERE TABLE_SCHEMA = 'databaseName'

转载于:https://my.oschina.net/u/581868/blog/1505603

MySQL】设置字符集排序规则 MySQL 支持字符集与比较规则(字符集校验规则)的设置。 MySQL 共提供了MySQL服务级别 、 库级别 、 级别 、 字段级别 。 当四级字符集排序规则都有设置时,各级之间存在优先级关系,其优先级由大到小依次为: 字段级别、级别、库级别、MySQL服务级别。 字符集排序规则是作用到数据表中的字符串字段的,当保存字符串数据时,数据库会一次检查字段级别、级别、库级别、MySQL服务级别的字符集排序规则设置,从前往后第一个查到的字符集将生效。 阅读详情

相关推荐

Mysql修改字符集排序规则

Mysql修改字符集排序规则一、数据库二、数据表三、字段 一、数据库修改数据库字符集排序规则 alter database xc character set utf8 collate utf8_general_ci; — 查看数据库字符集 select * from information_schema.schemata where schema_name = 'db_name'; 二、数据表修改默认的字符集 alter table table_name character

长不大的大灰狼 4830

MySQL中的字符集排序规则

这样,在新建的数据库连接中不需要再手动执行 "SET NAMES utf8mb4" 命令,因为连接会默认使用数据库字符集配置。utf8mb4是一种字符集编码,支持Unicode字符集的全部字符,包括一些较早版本的utf8字符集无法示的一些字符。通过将数据库连接的字符集编码设置为utf8mb4,可以确保数据库可以正确地存储、检索显示各种字符,避免出现乱码或字符丢失的问题。要设置为utf8mb4...通过这样的设置,会话的字符集将与字段字符集一致,可以正常存储包含四字节UTF-8字符的字符串。

techdashen的博客 989

批量修改MySQL字符集排序规则以及保证默认值不会发生修改

详细教学

m0_71074676的博客 1495

数据库MySQL 修改默认字符集排序规则,请谨慎操作、按照建议操作

MySQL 5.5 升级到 8.x 版本。MySQL 5.7 更改了默认字符集从 latin1 改为了 utf8mb4。但如果直接升级,旧的仍沿用 latin1 字符集,与系统新配置不匹配。这时就需要用 ALTER TABLE 语句修改这些字符集为 utf8mb4,并改为 utf8mb4_general_ci 排序规则,与系统一致。

hs598375774的博客 2246

mysql8修改排序字符,修改MySql数据表字段字符集排序规则

由于数据库中的数据表字段字符集排序规则不统一,找了很多帖子,最后发现如下脚本很好用。用法儿是:先执行如下脚本生成修改数据表字段的脚本,然后再执行这些生成的脚本。1. 修改指定数据库中所有varchar类型的字段字符集为UTF8,并将排序规则修改为utf8_general_ciSELECT CONCAT('ALTER TABLE `', table_name, '` MODIFY `...

weixin_42526087的博客 775

mysql数据库修改排序规则_修改MySql数据表字段字符集排序规则

由于数据库中的数据表字段字符集排序规则不统一,找了很多帖子,最后发现如下脚本很好用。用法儿是:先执行如下脚本生成修改数据表字段的脚本,然后再执行这些生成的脚本。1. 修改指定数据库中所有varchar类型的字段字符集为UTF8,并将排序规则修改为utf8_general_ciSELECT CONCAT('ALTER TABLE `', table_name, '` MODIFY `...

weixin_31358991的博客 580

导出mysql如何修改排序规则_转--修改MySql数据表字段字符集排序规则

由于数据库中的数据表字段字符集排序规则不统一,找了很多帖子,最后发现如下脚本很好用。用法儿是:先执行如下脚本生成修改数据表字段的脚本,然后再执行这些生成的脚本1. 修改指定数据库中所有varchar类型的字段字符集为UTF8,并将排序规则修改为utf8_general_ciSELECT CONCAT('ALTER TABLE `', table_name, '` MODIFY `'...

weixin_36169520的博客 297

mysql字段类型导致数据丢失_修改MySql数据表字段字符集排序规则...

由于数据库中的数据表字段字符集排序规则不统一,找了很多帖子,最后发现如下脚本很好用。用法儿是:先执行如下脚本生成修改数据表字段的脚本,然后再执行这些生成的脚本。1. 修改指定数据库中所有varchar类型的字段字符集为UTF8,并将排序规则修改为utf8_general_ciSELECT CONCAT(‘ALTER TABLE `‘, table_name, ‘` MODIFY `...

weixin_29300931的博客 892

1、基础知识点、数据库--- 密码的修改注释也有

mysql 的基础操作1,数据库数据表 的创建删除 。推荐看黑马视频。这里没有使用案例,只有命令格式知识点。比较简单就不写案例了。

2401_82911768的博客 692

【实践】mysql解决特生僻汉字插入问题

【知识篇】 首先补习下有关mysql数据库的编码知识。 cmd登录之后,输入show variables like 'character%'; 命令,可以查看本机mysql数据库的编码设置: 具体解释: 变量名 含义 character_set_server 默认的内部操作字符集 charac...

liuxinzhi1982的专栏 2091

mysql 批量修改字符_批量修改mysql数据库的字符校对规则

记录一个在工作中遇到的问题,也不算是问题,为的是找一种简便的方法批量修改数据表字段排序规则,在MySQL中叫collation,常常编码CHARACTER一起出现的。collation有三种级别,分辨是数据库级别,数据表级别字段级别。1.Thedatabaselevel2.Thetablelevel3.Thecolumnlevel那天遇到的问题是这样子的,Illegal mix ...

weixin_32865039的博客 289

修改MySql数据库字段字符集排序规则

1. 修改指定数据库中所有varchar类型的字段字符集为UTF8,并将排序规则修改为utf8_general_ci .运行下边脚本(脚本中只需修改数据库为对应的名称即可)生成修改字段排序规则的脚本,,, SELECT CONCAT('ALTER TABLE ', table_name, ' MODIFY ', column_name, ' ‘, DATA_TYPE, ‘(’, CHARAC...

那些年码的代码 1491

mysql数据库批量查询修改_批量修改mysql数据库的字符校对规则

记录一个在工作中遇到的问题,也不算是问题,为的是找一种简便的方法批量修改数据表字段排序规则,在MySQL中叫collation,常常编码CHARACTER一起出现的。collation有三种级别,分辨是数据库级别,数据表级别字段级别。1.Thedatabaselevel2.Thetablelevel3.Thecolumnlevel那天遇到的问题是这样子的,Illegal mix ...

weixin_32108979的博客 478

mysql设置的默认字符集的关键字_设置数据库的默认字符集

修改数据表字段字符集alter table `W` modify column `CONTENT` varchar(30) character set utf8 not null;修改数据表字符集alter table `W` default character set utf8;或ALTER TABLE tbl_name CONVERT TO CHARACTER SET charset_na...

weixin_39584405的博客 5131

调整MySQL数据表字符集

数据表t1的结构.mysql> show create table t1\G*************************** 1. row *************************** Table: t1Create Table: CREATE TABLE `t1` ( `id` int(11) NOT NULL AUTO_INCREME...

weixin_34360651的博客 98
上一篇: Oracle管道函数创建和使用
chuangyan4246
博客等级 码龄10年 0粉丝 0原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值