gpt4 book ai didi

postgresql - Postgres INSERT ON CONFLICT DO NOTHING 与 SELECT + INSERT 查询

转载 作者:行者123 更新时间:2023-11-29 11:44:27 33 4
gpt4 key购买 nike

<分区>

我有如下表stock_price_codevalue 列具有 UNIQUE 约束。

create table stock_price_code (
id serial primary key,
value text not null,
unique (value)
);

如果没有找到value 的记录,我想INSERT 到表中。我有这两个问题:

-- query 1
INSERT INTO stock_price_code (value)
SELECT 'MCD'
WHERE NOT EXISTS (SELECT * FROM stock_price_code WHERE value = 'MCD')
RETURNING id;


-- query 2
INSERT INTO stock_price_code (value) VALUES ('MCD')
ON CONFLICT (value) DO NOTHING
RETURNING id;

我在 Postgres 9.5 之前使用 query 1。然后 Postgres 9.5 开始引入 INSERT ... ON CONFLICT ... 功能。如果我将 query 1 替换为 query 2,是否存在任何已知的副作用或性能问题?谢谢。

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