在HSQL中关闭表名和列名的大写字母?

Art*_*hur 7 sql lowercase hsqldb

如何在HSQL中关闭表名和列名的强制大写模式?

<artifactId>hsqldb</artifactId>
<version>2.3.1</version>
Run Code Online (Sandbox Code Playgroud)

OS: Windows 7 x64

Ste*_*ers 10

有关这方面的规则在HSQLDB文档中有说明:

使用其中一个CREATE语句创建数据库对象或使用ALTER语句重命名数据库对象时,如果名称用双引号括起来,则使用确切的名称作为case-normal表单.但如果它没有用双引号括起来,则名称将转换为大写,并且此大写版本将作为case-normal形式存储在数据库中.

标识符的区分大小写规则可以简单描述如下:

  • 在处理之前,SQL语句的所有部分都将转换为大写,除了双引号中的标识符和单引号中的字符串
  • 然后将标识符(不带引号和双引号)视为区分大小写
  • 大多数数据库引擎遵循相同的规则,除了在某些方面,MySQL和MS SQLServer.

AFAIK此行为无法关闭.(值得注意的是,当不使用带引号的标识符时,标准SQL不区分大小写.)但如上所述,可以通过用引号括起来指定小写标识符,例如:

CREATE TABLE "lowercasetablename" ("lowercasecolname" INT);
SELECT "lowercasecolname" FROM "lowercasetablename";
Run Code Online (Sandbox Code Playgroud)


dil*_*pak 0

我不确定,我正确理解了这个问题,但只是想付出一些努力。

SET DATABASE COLLATION SQL_TEXT_UCC
Run Code Online (Sandbox Code Playgroud)

也许你可以参考http://hsqldb.org/doc/guide/dbproperties-chapt.html

  • 不要使用这个,从规范来看,它不是关于 **名称** 而是关于 **VARCHAR** 字段内的数据。 (3认同)