我是新来的apache derby
我似乎无法工作
CREATE TABLE IF NOT EXISTS table1 ...
可以实现MySql
等等我得到了'Syntax error: Encountered "NOT" at line 1, column 17.'
,当我尝试运行这个时SQL
我的声明Java
程序。
我在文档页面中检查了Derby Db 创建语句 https://db.apache.org/derby/docs/10.15/ref/rrefsqlj24513.html,但找不到这样的替代方案。
创建表,捕获SQLException
并检查 SQL 状态代码。
The full list of error codes can be found here http://db.apache.org/derby/docs/10.8/ref/rrefexcept71493.html but I couldn't find Table <value> already exists
; it's probably X0Y68
. The code you need is X0Y32
.
只需运行一次代码并打印错误代码。不要忘记添加测试以确保代码有效;这样,您可以捕获错误代码中的更改(不应该发生......)。
在我的项目中,我通常添加一个带有静态方法的辅助类,这样我就可以编写:
} catch( SQLException e ) {
if( DerbyHelper.tableAlreadyExists( e ) ) {
return; // That's OK
}
throw e;
}
另一种选择是运行SELECT
对照表并检查状态代码(应该是42X05
)。但这是您需要发送的第二个命令,它不提供任何附加信息。
更糟糕的是,它可能会因“表不存在”之外的其他原因而失败,因此“创建并忽略错误”在我看来更好。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)