如何以小写名称创建表 – JavaDB / Derby?

是否可以使用JavaDB / Derby以小写forms创建表及其名称? 要检查表是否存在,我正在使用:

ResultSet rs = dbmd.getTables(null, "APP", "user_properties", null); if (!rs.next()) {/*do something*/}; 

但是表名’user_properties’必须在目录中加工。

Derby遵循ANSI标准,该标准要求将不带引号的标识符折叠为大写。 那么,以下声明:

 create table user_properties ( id integer not null ); 

将创建一个名为USER_PROPERTIES的表和一个名为ID的列。

您可以使用带引号的标识符强制Derby存储小写(或实际混合的)名称:

 create table "user_properties" ( "id" integer not null ); 

将创建一个名为user_properties的表和一个名为id的列。

当您使用带引号的标识符(也称为“分隔标识符”)时,它们会区分大小写,因此必须始终使用双引号引用第二个表。

如果使用第二个语句创建表,则select * from user_properties的语句select * from user_properties将不起作用。 您必须始终引用它: select * from "user_properties"

使用带引号的标识符通常会造成比它值得多的麻烦。 如果您从未引用过您的标识符,则可以在getTables()调用中安全地使用大写名称