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

时间:2016-03-24 09:16:19

标签: sql hsqldb lowercase

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

<artifactId>hsqldb</artifactId>
<version>2.3.1</version>

操作系统: Windows 7 x64

2 个答案:

答案 0 :(得分:10)

有关此问题的规则在HSQLDB documentation

中有解释
  

使用其中一个CREATE语句创建数据库对象时   如果名称用double括起来,则使用ALTER语句重命名   引号,确切的名称用作案例正常形式。但如果是的话   未用双引号括起来,名称将转换为大写和   这个大写版本作为case-normal存储在数据库中   形式。

  

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

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

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

CREATE TABLE "lowercasetablename" ("lowercasecolname" INT);
SELECT "lowercasecolname" FROM "lowercasetablename";

答案 1 :(得分:1)

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

SET DATABASE COLLATION SQL_TEXT_UCC

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