数据由Oracle迁入MySQL,由于之前甲骨文区分大小写,MySQL的配置使用了默认配置,导致一些数据导入失败,有的唯一键报错,冲突。
将测试过程记录在下面。
数据库版本:MySQL 5.7.11
引用他人
校对规则一般有这些特征:
- <李>
李> <李>
李> <李>
李>
查看支持的校验规则:
mysql>, SHOW COLLATION like & # 39; utf8%& # 39;; + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + |,Collation ,,,,,,,,,,,,,,, |, Charset |, Id , |, Default |, Compiled | Sortlen | + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + |,utf8_general_ci ,,,,,,,,, |, utf8 ,,, |,, 33, |, Yes ,,,, |, Yes ,,,,, |,,,,,,, 1 | |,utf8_bin ,,,,,,,,,,,,,,,, |, utf8 ,,, |,, 83, |,,,,,,,,, |, Yes ,,,,, |,,,,,,, 1 | |,utf8_unicode_ci ,,,,,,,,, |, utf8 ,,, |, 192, |,,,,,,,,, |, Yes ,,,,, |,,,,,,, 8 | … |,utf8mb4_general_ci ,,,,,, |, utf8mb4 |,, 45, |, Yes ,,,, |, Yes ,,,,, |,,,,,,, 1 | |,utf8mb4_bin ,,,,,,,,,,,,, |, utf8mb4 |,, 46, |,,,,,,,,, |, Yes ,,,,, |,,,,,,, 1 | |,utf8mb4_unicode_ci ,,,,,, |, utf8mb4 |, 224, |,,,,,,,,, |, Yes ,,,,, |,,,,,,, 8 | |,utf8mb4_icelandic_ci ,,,, |, utf8mb4 |, 225, |,,,,,,,,, |, Yes ,,,,, |,,,,,,, 8, |
查看本地的校验规则: mysql>, show global  variables like & # 39; %科尔% & # 39;; + - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - + |,Variable_name ,,,,,,, |, Value ,,,,,,,,,,,, | + - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - + | |,collation_connection utf8mb4_unicode_ci | |,collation_database ,, |, utf8mb4_unicode_ci | |,collation_server ,,,, |, utf8mb4_unicode_ci | + - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - +
生产中数据库使用的编码为utf8mb4,校验规则为,utf8mb4_unicode_ci,对大小写不敏感
如果需要大小写敏感,需要将排序规则修改为utf8mb4_bin。
。优先级大概是这样:列在表的在数据库的在云服务器
有两种方法使查询区分大小写:
- <李>
第一种方法为修改列级别的校验规则为
李>
CREATE TABLE “T”, ( “名字”,才能varchar (20), COLLATE utf8mb4_unicode_ci DEFAULT NULL ),引擎=InnoDB DEFAULT CHARSET=utf8mb4 整理=utf8mb4_unicode_ci mysql>, select *,得到T; + - - - + | |,name  + - - - + |,你| |,你| |,你| |,你| |,你| + - - - +
T2表:将列校对规则修改为
CREATE TABLE 《终结者2》,( “名字”,才能varchar (20), CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL ),引擎=InnoDB DEFAULT CHARSET=utf8mb4 整理=utf8mb4_unicode_ci mysql>, select *,得到T2; + - - - + | |,name  + - - - + |,你| |,你| + - - - +
查询:
T:(未区分大小写)
mysql>, select *,得到T where name =, & # 39;你们# 39;; + - - - + | |,name  + - - - + |,你| |,你| |,你| |,你| |,你| null null null null null null null null null null null null null区别MySQL字段内容大小写讲解