gpt4 book ai didi

postgresql - 从插入的 ID 更新

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

逻辑:我想在 customers.user_id 为空时创建 loyalty_customers 并更新 customers.user_idloyalty_customers.id

我有一个查询,但它不工作:

UPDATE customers 
SET user_id = (
INSERT INTO loyalty_users (name) VALUES ('anonymous')) RETURNING id
)
WHERE user_id IS NULL;

错误如:

LINE 3: INSERT INTO loyalty_users

看起来 INSERT 不能被任何查询包裹,我试过这个查询但它仍然不起作用:

SELECT id FROM (
INSERT INTO loyalty_users (name) VALUES ('anonymous')) RETURNING id);

但是,独立的 INSERT 查询非常有效:

INSERT INTO loyalty_users (name) VALUES ('anonymous')) RETURNING id;

最佳答案

可能做这件事的正确方法是:

WITH updated_customer AS (
UPDATE customers
SET name = 'anonymous'
WHERE user_id IS NULL
RETURNING user_id AS id
)
INSERT INTO loyalty_users SELECT * FROM updated_customer;

这对我有用,但如果您有其他想法,请在此问题中发表评论。

关于postgresql - 从插入的 ID 更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37388040/

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