我可以在Derby中使用保留关键字作为列名吗? 我正在尝试将数据库架构迁移到Derby中以进行测试。出于这个原因,我真的不想改变架构结构(列名等)。
所以问题是,如何在Derby中创建列名为“open”的表?例如表:
create table test ( open integer );
试图引用列名,但到目前为止还没有成功......
java.sql.SQLSyntaxErrorException: Syntax error: Encountered "open" at line 1, column 21.
at org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(Unknown Source)
答案 0 :(得分:8)
引用保留字的标准方式(并且Derby遵循标准,因为几乎所有DBMS都在这方面做)是使用双引号。
create table test ( "OPEN" integer );
但请注意,一旦您执行该列(或表),名称将变为区分大小写。 "OPEN"
与"open"
或"Open"
不同。
我强烈建议您不使用要求您引用它们的名称。