23. Mysql中的排序规则

Mysql中的排序规则

1. 数据库默认的排序规则

mysql8的默认排序方式是 utf8mb4_0900_ai_ci
mysql5的默认排序规则是 utf8mb4_general_ci
参考文章
    https://www.cnblogs.com/seasonhu/p/14994857.html
但是排序规则不具备强制性,如数据库排序规则设置了utf8mb4_0900_ai_ci,表排序规则同样可以设置utf8mb4_general_ci,字段还可以设置utf8mb4_0900_ai_ci

2. 查看表的排序规则

2.1 查看表排序规则

SELECT 
	TABLE_CATALOG, TABLE_SCHEMA, TABLE_NAME, TABLE_COLLATION
FROM 
	INFORMATION_SCHEMA.TABLES
WHERE
	TABLE_SCHEMA = 'product'

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5Tu2okCQ-1690508562014)(https://note.youdao.com/yws/res/24484/WEBRESOURCEc5d195a64a5d70357b5bcd3d27c2c677)]

2.2 查看字段排序规则

SELECT 
	TABLE_CATALOG, TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME, COLUMN_TYPE, COLLATION_NAME
FROM 
	INFORMATION_SCHEMA.COLUMNS
WHERE
	TABLE_SCHEMA = 'product'

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-W30iCB6S-1690508562015)(https://note.youdao.com/yws/res/24482/WEBRESOURCEa1b76e38dd03d8478191a648f8b22814)]

3.修改排序规则

3.1 修改库

 ALTER DATABASE product_dscc CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OAZtzMYl-1690508562015)(https://note.youdao.com/yws/res/24464/WEBRESOURCEef9b00d7d17f4ecbbfe0b9bf069c8217)]

3.2 修改表

单个表
ALTER TABLE exc_code_value
DEFAULT CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci;

通过批量生成执行脚本方式来修改,如
SELECT
	CONCAT( 'ALTER TABLE ', TABLE_NAME, ' DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;' ) 
FROM
	information_schema.`TABLES` 
WHERE
	TABLE_SCHEMA = 'xxx';

3.3 修改字段

单个字段
ALTER TABLE `exc_warn_notice` MODIFY `id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL;

通过批量生成执行脚本方式来修改,如
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 `sql`
FROM information_schema.COLUMNS
WHERE 1=1
	and TABLE_SCHEMA = 'xxx' #要修改的数据库名称
	and DATA_TYPE = 'text'
	and COLLATION_NAME='utf8mb4_0900_ai_ci';
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鱼鱼大头鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值