【发布时间】:2013-08-10 03:11:45
【问题描述】:
我正在尝试使用 JavaDB (Derby) 创建表,但如果我尝试添加 IF NOT EXISTS:
CREATE TABLE IF NOT EXISTS etc (ID BIGINT PRIMARY KEY, title VARCHAR(150))
我得到错误:
java.sql.SQLSyntaxErrorException:语法错误:在 第 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 文档:“必须与存储在数据库中的表名匹配”。
【问题讨论】:
标签: sql create-table javadb