gpt4 book ai didi

sql - 如何在 postgresql 中使用带有 ON CONFLICT 子句的 IF ELSE?

转载 作者:行者123 更新时间:2023-12-05 00:52:51 25 4
gpt4 key购买 nike

我有一项气流工作,每天通过 INSERT ON CONFLICT 语句更新表格的列。该表包含一个枚举类型的字段 updated_mode,当该行由作业插入/更新时设置为 automatic,如果手动完成则设置为 ma​​nual。现在,我希望我的工作仅在 updated_mode 设置为 automatic 时更新行。我该怎么做?

基本上,我想做这样的事情:

Insert into table (data) values (data) on conflict (fields) if updated_mode=automatic set data=excluded.data else do nothing

最佳答案

您需要 ON CONFLICT 中的 WHERE 子句。

INSERT INTO table_data 
VALUES (data)
ON CONFLICT (fields)
DO UPDATE SET data=excluded.data
WHERE EXCLUDED.updated_mode='automatic'

看看 db fiddle: https://www.db-fiddle.com/f/qwRzRSFaJx4KDMYn2GEXTe/1

关于sql - 如何在 postgresql 中使用带有 ON CONFLICT 子句的 IF ELSE?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69149105/

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