VastbaseG100

基于openGauss内核开发的企业级关系型数据库。

Menu

设置对象名大小写敏感

功能描述

在MySQL兼容模式下,Vastbase G100支持通过lower_case_table_names参数来控制对象名的大小写敏感特性。该参数值设为0表示大小写敏感(默认),参数值设为1表示大小写不敏感。

语法格式

  • 创建数据库时指定参数lower_case_table_names的值:

    CREATE DATABASE database_name DBCOMPATIBILITY 'B' lower_case_table_names=X;
    
  • 查看当前数据库下参数lower_case_table_names的值:

    show lower_case_table_names;
    

参数说明

  • database_name

    创建的数据库名字。

  • X

    参数lower_case_table_names的取值,可选0或1。含义如下:

    • 0:对象名使用创建时的大小写样式保存,在比较判断时使用大小写敏感的方式。
    • 1:对象名统一使用小写样式保存,在比较判断时使用大小写不敏感的方式。

注意事项

  • 该功能仅在数据库兼容模式为MySQL时能够使用(即创建DB时DBCOMPATIBILITY='B'),在其他数据库兼容模式下不能使用该特性。

  • 仅Vastbase G100 2.2 Build 11及以后版本支持此功能。

  • 创建数据库后,用户无法修改此参数。

示例

示例1:大小写不敏感

1、创建兼容模式为MySQL的数据库test_mysql,并将其设置为大小写不敏感。

CREATE DATABASE test_mysql DBCOMPATIBILITY 'B' lower_case_table_names=1;

2、切换到数据库test_mysql下,查看当前数据库下参数lower_case_table_names的值。

\c test_mysql
show lower_case_table_names;

返回结果为:

 lower_case_table_names
------------------------
 1
(1 row)

3、在test_mysql02库中创建表table1。

CREATE TABLE table1
( 
  id    INTEGER, 
 name   varchar(20)
);  

4、向表TABLE1中插入数据。

INSERT INTO TABLE1(id,name) VALUES(1, 'jack');

5、查看表TABLE1内容。

select * from TABLE1;

返回结果如下,表示数据插入成功,该数据库大小写不敏感。

 id | name
----+------
  1 | jack
(1 row)

示例2:大小写敏感

1、创建兼容模式为MySQL的数据库test_mysql2,并将其设置为大小写敏感。

CREATE DATABASE test_mysql2 DBCOMPATIBILITY 'B' lower_case_table_names=0;

2、切换到数据库test_mysql2下,创建测试表table2。

\c test_mysql2

CREATE TABLE table2
( 
  id   INTEGER, 
 name  varchar(20)
);

3、向表TABLE2中插入数据。

INSERT INTO TABLE2(id,name) VALUES (2, 'grace');

插入失败,返回结果如下。

ERROR:  relation "TABLE2" does not exist on node1