如何以小写名称创建表 – 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()
调用中安全地使用大写名称