Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java jOOQ-如何将.whereNotExists()与条件更新一起使用?_Java_Sql_Postgresql_Jooq - Fatal编程技术网

Java jOOQ-如何将.whereNotExists()与条件更新一起使用?

Java jOOQ-如何将.whereNotExists()与条件更新一起使用?,java,sql,postgresql,jooq,Java,Sql,Postgresql,Jooq,我有一个下面的jOOQ查询,最初是在有问题的帮助下编写的 create.insertInto(DATA,DATA.TICKER,DATA.OPEN,DATA.HIGH,DATA.LOW,DATA.CLOSE,DATA.DATE) .select( select( val(dailyData.getTicker()), val(dailyData.getOpen()), val(dailyData.getHigh()), va

我有一个下面的jOOQ查询,最初是在有问题的帮助下编写的

create.insertInto(DATA,DATA.TICKER,DATA.OPEN,DATA.HIGH,DATA.LOW,DATA.CLOSE,DATA.DATE)
.select(
    select(
        val(dailyData.getTicker()),
        val(dailyData.getOpen()),
        val(dailyData.getHigh()),
        val(dailyData.getLow()),
        val(dailyData.getClose()),
        val(dailyData.getDate())
        )
    .whereNotExists(
        selectOne()
        .from(DATA)
        .where(DATA.DATE.eq(dailyData.getDate()))
    )
).execute();
此查询工作正常。此外,我想修改以完成以下壮举,但我不确定它是否确实可行。用简单的英语:

如果表中不存在具有相同“日期”列的行,请插入该行。如果该行存在且“实时关闭”列为true,请更新“关闭”,否则不执行任何操作


第一部分已包含在现有查询中,但第二部分包含if…update。。。不是,这就是我需要帮助的地方

在纯PostgreSQL中,您可以按如下方式编写此查询:

插入数据(股票行情、开盘、高位、低位、收盘、日期)
值(:标记器、:打开、:高、:低、:关闭、:日期)
关于冲突(日期)
DO UPDATE SET close=关闭时为false
这将转换为以下jOOQ查询:

DSL.使用(配置)
.insertInto(数据)
.栏目(
DATA.TICKER,
DATA.OPEN,
高数据,
数据。低,
DATA.CLOSE,
数据(日期)
.价值观(
dailyData.getTicker(),
dailyData.getOpen(),
dailyData.getHigh(),
dailyData.getLow(),
dailyData.getClose(),
dailyData.getDate())
.onConflict()
.doUpdate()
.set(DATA.CLOSE,内联(false))
.where(DATA.CLOSE)
.execute();

稍作修改后,它似乎完全实现了我想要的功能。再次感谢你。我不会想到我真正需要的是一个完全不同的查询。