如何在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(如果已存在)。
答案 0 :(得分:1)
以下是我对您的问题的理解:您希望更新“表格”中的现有行。在哪里' table'列的值为“id'和' date1'。您要进行的更新是在列' date2'中添加日期。
这会将当前日期添加到' date2'无论在哪里' id'和' date1'已经填写完毕:
UPDATE table
SET date2 = getdate()
WHERE id IS NOT NULL
AND date1 IS NOT NULL
在这里,您可以将date2设置为您想要的任何内容。如果您需要来自其他表的日期,则可以通过仅将该行更改为
来获取该日期SET date2 = (SELECT datecolumn FROM othertable WHERE ...)