JavaDB - CREATE TABLE IF NOT NOT EXISTS - 如何?

时间:2013-08-08 11:59:22

标签: sql create-table javadb

我正在尝试使用JavaDB(Derby)创建表,但如果我尝试添加IF NOT EXISTS:

CREATE TABLE IF NOT EXISTS etc (ID BIGINT PRIMARY KEY, title VARCHAR(150))

我收到错误:

  

java.sql.SQLSyntaxErrorException:语法错误:遇到“NOT”at   第1行,第17栏。

我记得它适用于MySQL。检查表是否存在的语法/最简单方法是什么?

修改

最后我找到了解决方案:

DatabaseMetaData dbmd = conn.getMetaData();
ResultSet rs = dbmd.getTables(null, "APP", "ETC", null);
if (rs.next()) {
    System.out.println("Table " +  rs.getString(3) + " exists");
}

我注意到,如果使用引号“etc”创建表名,则表名称区分大小写,如果不是,则名称必须为大写。根据API文档:“必须匹配存储在数据库中的表名”。

1 个答案:

答案 0 :(得分:-3)

if not exists (select * from sysobjects where name='etc' and xtype='U')
create table etc(
   ID BIGINT PRIMARY KEY, title VARCHAR(150)
);

如果它不存在,它将创建一个名为etc的表。

超过here的更多内容。

祝你好运