gpt4 book ai didi

sql - 如果存在则更新行,如果不存在则插入,此 SQL 查询如何工作?

转载 作者:行者123 更新时间:2023-11-29 11:22:13 25 4
gpt4 key购买 nike

我正在处理一些代码。有几个查询的效果是,如果该行存在并填充了一些数据,则用其余数据更新该行,如果该行不存在,则创建一个新行。它们看起来像这样:

INSERT INTO table_name (col1, col2, col3)SELECT %s AS COL1, %s AS COL2, %s AS COL3FROM ( SELECT %s AS COL1, %s AS COL2, %s AS COL3 ) ALEFT JOIN table_name BON  B.COL1 = %sAND B.COL2 = %s     --note: doesn't mention all columns hereWHERE B.id IS NULLLIMIT 1

我可以模仿这种模式并且它似乎有效,但我对幕后实际发生的事情感到困惑。任何人都可以阐明这实际上是如何工作的吗?我正在使用 PostgreSQL。

最佳答案

您确定仅使用那段代码进行更新吗?

令人高兴的是,您正在与 table_name(用于插入新记录的表)进行左连接,并且仅过滤该表中不存在的行。 (其中 B.id 为 NULL)

就像做“不存在”,只是方式不同。

希望我的回答能帮到你。

问候。

关于sql - 如果存在则更新行,如果不存在则插入,此 SQL 查询如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3119595/

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