searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

MySQL大小写敏感问题

2023-10-30 01:55:12
80
0

校验码问题:

utf8mb4_bin:将字符串每个字符用二进制数据编译存储,区分大小写,而且可以存二进制的内容。

utf8mb4_general_ci:ci即case insensitive,不区分大小写。没有实现Unicode排序规则,在遇到某些特殊语言或者字符集,排序结果可能不一致。但是,在绝大多数情况下,这些特殊字符的顺序并不需要那么精确。

 

注意:字段名不区分大小写

 

 

MySQL大小写敏感问题

lower_case_table_names & lower_case_file_system

 

〇 lower_case_file_system

    该参数是用于描述data目录所在的操作系统是否为大小写敏感,该参数为bool类型,但无法修改。

    0 -- 大小写敏感 

    1 -- 大小写不敏感

 

    比如跑在linux上的都是OFF或者0。

 

〇 lower_case_table_names

    该参数为静态,可设置为0、1、2。

 

0 -- 大小写敏感。(Unix,Linux默认)

创建的库表将原样保存在磁盘上。如create database TeSt;将会创建一个TeSt的目录,create table AbCCC ...将会原样生成AbCCC.frm。

SQL语句也会原样解析。

 

1 -- 大小写不敏感。(Windows默认)

创建的库表时,MySQL将所有的库表名转换成小写存储在磁盘上。

SQL语句同样会将库表名转换成小写。

如需要查询以前创建的Test_table(生成Test_table.frm文件),即便执行select * from Test_table,也会被转换成select * from test_table,致使报错表不存在。

 

2 -- 大小写不敏感(OS X默认)

创建的库表将原样保存在磁盘上。

但SQL语句将库表名转换成小写。

 

修改lower_case_table_names导致的常见不良隐患:

如果在lower_case_table_names=0时,创建了含有大写字母的库表,改为lower_case_table_names=1后,则会无法被查到。

 

注意事项:

将默认的lower_case_tables_name为0设置成1,需先将已经存在的库表名转换为小写

0条评论
0 / 1000
1****n
19文章数
0粉丝数
1****n
19 文章 | 0 粉丝
原创

MySQL大小写敏感问题

2023-10-30 01:55:12
80
0

校验码问题:

utf8mb4_bin:将字符串每个字符用二进制数据编译存储,区分大小写,而且可以存二进制的内容。

utf8mb4_general_ci:ci即case insensitive,不区分大小写。没有实现Unicode排序规则,在遇到某些特殊语言或者字符集,排序结果可能不一致。但是,在绝大多数情况下,这些特殊字符的顺序并不需要那么精确。

 

注意:字段名不区分大小写

 

 

MySQL大小写敏感问题

lower_case_table_names & lower_case_file_system

 

〇 lower_case_file_system

    该参数是用于描述data目录所在的操作系统是否为大小写敏感,该参数为bool类型,但无法修改。

    0 -- 大小写敏感 

    1 -- 大小写不敏感

 

    比如跑在linux上的都是OFF或者0。

 

〇 lower_case_table_names

    该参数为静态,可设置为0、1、2。

 

0 -- 大小写敏感。(Unix,Linux默认)

创建的库表将原样保存在磁盘上。如create database TeSt;将会创建一个TeSt的目录,create table AbCCC ...将会原样生成AbCCC.frm。

SQL语句也会原样解析。

 

1 -- 大小写不敏感。(Windows默认)

创建的库表时,MySQL将所有的库表名转换成小写存储在磁盘上。

SQL语句同样会将库表名转换成小写。

如需要查询以前创建的Test_table(生成Test_table.frm文件),即便执行select * from Test_table,也会被转换成select * from test_table,致使报错表不存在。

 

2 -- 大小写不敏感(OS X默认)

创建的库表将原样保存在磁盘上。

但SQL语句将库表名转换成小写。

 

修改lower_case_table_names导致的常见不良隐患:

如果在lower_case_table_names=0时,创建了含有大写字母的库表,改为lower_case_table_names=1后,则会无法被查到。

 

注意事项:

将默认的lower_case_tables_name为0设置成1,需先将已经存在的库表名转换为小写

文章来自个人专栏
文章 | 订阅
0条评论
0 / 1000
请输入你的评论
0
0