如果表不存在,如何使用 Derby Db 创建表

2024-05-05

我是新来的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(使用前将#替换为@)

如果表不存在,如何使用 Derby Db 创建表 的相关文章

随机推荐