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)
我不确定,我正确理解了这个问题,但只是想付出一些努力。
SET DATABASE COLLATION SQL_TEXT_UCC
Run Code Online (Sandbox Code Playgroud)
也许你可以参考http://hsqldb.org/doc/guide/dbproperties-chapt.html