gpt4 book ai didi

sql - Postgres UPSERT 在 UPDATE 时重用 INSERT 中的列值

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

我有一个工作正常的基本更新插入查询:

insert into table (id, data) values (1, '<data_string>') 
on conflict (id) do update set data='<data_string>';

唯一的问题是我需要通过网络发送大量此类查询,所以我想知道是否有一种方法可以通过不使用 <data_string> 来将流量减半。在查询中列出两次?

最佳答案

是的,有一个特殊的表EXCLUDED,目的是:

INSERT INTO tbl (id, data)
VALUES (1, '<data_string>')
ON CONFLICT (id) DO UPDATE SET data = <b>EXCLUDED.</b>data;

the manual explains :

Note that the special excluded table is used to reference values originally proposed for insertion:

也适用于多行插入:

INSERT INTO tbl (id, data)
VALUES (1, '<data_string1>')
, (2, '<data_string2>')
, (3, '<data_string3>')
ON CONFLICT (id) DO UPDATE
SET data = EXCLUDED.data;

关于sql - Postgres UPSERT 在 UPDATE 时重用 INSERT 中的列值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52673288/

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