2013-10-03 20 views
2

是否可以使用JavaDB/Derby创建表以及小写名称?要检查表存在我使用:如何用小写字母名称创建表 - JavaDB/Derby?

但表名“user_properties”必须马赫目录的情况。

+0

的电话中使用大写字母名称,因为你不能使用create table table_name ....? – SpringLearner

+0

如果我在模式'APP'中执行'st.execute(“CREATE TABLE user_properties”);'将其记录为'USER_PROPERTIES' - 大写。我希望它是小写。这不是一个很大的问题,只是问是否有可能:) –

回答

10

德比遵循ANSI标准,要求将未加引号的标识符折叠为大写。 所以,下面的语句:

create table user_properties 
(
    id integer not null 
); 

将创建一个表,然后将其命名USER_PROPERTIES和一个名为ID列。

您可以强制德比用带引号的标识符存储小写(或实际混套管)名称:

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

将创建一个表,然后将其命名user_properties和一个名为id列。

当您使用带引号的标识符(又名“分隔标识符”)时,它们区分大小写,所以第二个表必须使用双引号引用总是

声明select * from user_properties如果表是用第二条语句创建不工作。你总是引用它:select * from "user_properties"

使用带引号的标识符通常会导致太多比它的价值更麻烦。如果你永远不会引用你的标识符,你可以安全地在调用getTables()

+0

是的,这对我有效。与这种情况相比,MySQL的语法稍微简单一点,但是商业上使用它的代价太大了:)我想我会留在大写的情况下,不用引号。 –

+0

@ErnestasGruodis:实际上,如果你在ANSI模式下运行MySQL,它的行为几乎相同。 –

相关问题