是否可以使用JavaDB/Derby以小写形式创建表及其名称?要检查表是否存在,我正在使用:
ResultSet rs = dbmd.getTables(null, "APP", "user_properties", null);
if (!rs.next()) {/*do something*/};
Run Code Online (Sandbox Code Playgroud)
但是表名'user_properties'必须在目录中加工.
a_h*_*ame 10
Derby遵循ANSI标准,该标准要求将不带引号的标识符折叠为大写.那么,以下声明:
create table user_properties
(
id integer not null
);
Run Code Online (Sandbox Code Playgroud)
将创建一个具有名称USER_PROPERTIES和名为列的列的表ID.
您可以使用带引号的标识符强制Derby存储小写(或实际混合的)名称:
create table "user_properties"
(
"id" integer not null
);
Run Code Online (Sandbox Code Playgroud)
将创建一个具有名称user_properties和名为列的列的表id.
当您使用带引号的标识符(也称为"分隔标识符")时,它们会区分大小写,因此必须始终使用双引号引用第二个表.
该声明select * from user_properties将不会如果表是用第二条语句创建工作.你必须经常引用它:select * from "user_properties".
使用带引号的标识符通常造成很大的麻烦比它的价值.如果您从未引用过您的标识符,则可以安全地使用调用中的大写名称getTables()
| 归档时间: |
|
| 查看次数: |
1546 次 |
| 最近记录: |