我正在尝试使用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文档:“必须匹配存储在数据库中的表名”。
答案 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的更多内容。
祝你好运