【问题标题】:SQL How to perform conditional batch updates of existing rowsSQL 如何对现有行执行条件批量更新
【发布时间】:2017-11-30 22:16:17
【问题描述】:

如何在 BATCH 插入中添加条件。我正在使用如下语句将数据插入表中。

INSERT INTO table   (id, date1,date2 ) SELECT ?, ?, ?  WHERE NOT EXISTS (SELECT 1 FROM table WHERE id= ? and COALESCE (date1::timestamp = ?))

上面的 INSERT 将始终将条目添加到所有列中。有什么办法可以有条件地进入表格。例如,如果 date1 和 id 已经存在,我只想插入 date2。如果 date1 已经存在,目标是不更新它。

【问题讨论】:

    标签: sql postgresql spring-boot


    【解决方案1】:

    这是我对您的问题的理解:您想更新“表”中的现有行,其中“表”具有“id”和“date1”列的值。您要进行的更新是将日期放在“date2”列中。

    这会将当前日期添加到“id”和“date1”已填写的“date2”中:

    UPDATE table 
    SET date2 = getdate()
    WHERE id IS NOT NULL 
        AND date1 IS NOT NULL 
    

    在这里,您可以将 date2 设置为您想要的任何内容。如果您需要不同表格中的日期,您可以通过仅将该行更改为

    SET date2 = (SELECT datecolumn FROM othertable WHERE ...)
    

    【讨论】:

      猜你喜欢
      • 2011-01-08
      • 2018-09-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-27
      • 2015-11-26
      相关资源
      最近更新 更多