gpt4 book ai didi

java - 如果满足条件则退出 H2 sql 脚本

转载 作者:行者123 更新时间:2023-12-02 00:38:39 25 4
gpt4 key购买 nike

如果满足条件,我将尝试退出 H2 初始化脚本。
使用 H2 数据库是否可以实现这一点?

SET @COUNT = SELECT COUNT(*) AS count FROM information_schema.tables WHERE table_name = 'T_TABLE';
IF (@COUNT > 0) THEN RETURN;

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

@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
);
}

不幸的是,每次测试都会在数据库上执行脚本,但脚本会创建表,因此当脚本已经执行时,会在后续测试中引发错误。

最佳答案

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

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

CREATE TABLE IF NOT EXISTS TABLE_NAME(...);

ALTER TABLE TABLE_NAME ADD CONSTRAINT IF NOT EXISTS CONSTRAINT_NAME ...;

关于java - 如果满足条件则退出 H2 sql 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57957588/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com