我刚到apache derby
岁,似乎无法工作
CREATE TABLE IF NOT EXISTS table1 ...
当我试图在我的Java
程序中运行这条SQL
语句时,我得到的是'Syntax error: Encountered "NOT" at line 1, column 17.'
.
我在文档页面上查了Derby Db Create Statements个,但找不到这样的替代方案.
我刚到apache derby
岁,似乎无法工作
CREATE TABLE IF NOT EXISTS table1 ...
当我试图在我的Java
程序中运行这条SQL
语句时,我得到的是'Syntax error: Encountered "NOT" at line 1, column 17.'
.
我在文档页面上查了Derby Db Create Statements个,但找不到这样的替代方案.
创建表,捕获SQLException
并判断SQL状态代码.
错误代码的完整列表可以在here中找到,但我找不到 你需要的代码是Table <value> already exists
;大概是X0Y68
X0Y32
.
只需运行一次代码并打印错误代码.别忘了添加测试以确保代码正常工作;通过这种方式,您可以捕获错误代码中的更改(不应该发生…).
在我的项目中,我通常会添加一个带有静态方法的助手类,这样我就可以编写:
} catch( SQLException e ) {
if( DerbyHelper.tableAlreadyExists( e ) ) {
return; // That's OK
}
throw e;
}
另一种 Select 是对表运行SELECT
并判断状态代码(应该是42X05
).但这是您需要发送的第二个命令,它没有提供任何附加信息.
更糟糕的是,它可能会因为"表不存在"以外的其他原因而失败,所以"创建并忽略错误"更好.