首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果满足条件,则退出H2 sql脚本。

如果满足条件,则退出H2 sql脚本。
EN

Stack Overflow用户
提问于 2019-09-16 13:10:26
回答 1查看 261关注 0票数 0

如果满足条件,我将尝试退出H2初始化脚本。

这完全有可能使用H2数据库。

代码语言:javascript
复制
SET @COUNT = SELECT COUNT(*) AS count FROM information_schema.tables WHERE table_name = 'T_TABLE';
IF (@COUNT > 0) THEN RETURN;

我在测试中初始化这样的数据。

代码语言:javascript
复制
@BeforeEach
public void setup() {
    if (db != null)
        return;

    db = new EmbeddedDatabaseBuilder()
        .setType(EmbeddedDatabaseType.H2)
        .addScript("db-schema.sql")
        .build();
    given(builder.build()).willReturn(db);
    sut = new GPSOrderRepository(
        builder,
        sequenceService
    );
}

不幸的是,每个测试都会在数据库中显示脚本,但是脚本会创建表,因此在脚本已经执行时在后续测试中抛出一个错误。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-09-16 14:15:15

H2目前不支持有条件的语句执行。

因此,如果只使用支持IF NOT EXISTS子句的命令,则需要检查Java代码中的对象是否存在,或者可以尝试将子句添加到所有命令中。

代码语言:javascript
复制
CREATE TABLE IF NOT EXISTS TABLE_NAME(...);

ALTER TABLE TABLE_NAME ADD CONSTRAINT IF NOT EXISTS CONSTRAINT_NAME ...;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57957588

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档