case_sensitive 含义为数据库的大小写敏感,是初始化参数,也就是在初始化实例时定义的参数,一旦初始化完成之后就不能更改,所以这个参数非常重要。
大小写敏感会涉及到三种对象:
- 表名 / 模式名
- 列名
- 数据
表名 / 模式名
先看看大小写不敏感的实例,先创建一个表 a,为小写字母 a,然后查询该表即可:
create table "a" ( id int );
select * from "a";
select * from "A";
均可以查到。
再看看大小写敏感的实例,同样的过程:
create table "a" ( id int );
select * from "a";
select * from "A";
所以表名 / 模式名是存在大小写敏感的。
列名
先看看大小写不敏感的实例,先创建一个表 a,为小写字母 a,然后查询该表即可:
create table "a" ( id int );
select * from "a";
select * from "A";
均可以查到。
再看看大小写敏感的实例,同样的过程:
create table "a" ( id int );
select * from "a";
select * from "A";
所以表名 / 模式名是存在大小写敏感的。
大小写不敏感的实例会自动将小写字母转换为大写字母;
大小写敏感的实例并不会。
可以通过双引号来避免。
数据
先看看大小写不敏感的实例,插入两条数据,一条为 a, 另一条为 A。如果查询都只能查出来一条即代表大小写不敏感并不会对数据产生影响。
create table "a" ( id varchar(255) );
insert into "a" values ( 'a' );
insert into "a" values ( 'A' );
均为1,则代表不影响。
再看看大小写敏感的实例,同样的测试方法:
create table "a" ( id varchar(255) );
insert into "a" values ( 'a' );
insert into "a" values ( 'A' );
CleanShot 2021-12-26 at 19.23.01.png
CleanShot 2021-12-26 at 19.23.08.png
均为2,则代表有影响。
达梦社区网址:eco.dameng.com/