![](/img/trans.png)
[英]How to pass the value from the one select to another select in a query?
[英]How to pass a return value from one PostgreSQL query to another?
我有兩個疑問。 第一個創建一個新用戶。 該表具有三個字段, id
、 name
和email
。 id
字段是一個自動增量值。
第二個查詢使用 ID 值創建與該用戶相關的附加數據。
如何將第一個查詢的RETURNING
值傳遞給第二個查詢?
例子:
INSERT INTO users (
name,
email
) VALUES (
'John Doe',
'johndoe@whatever.com'
) RETURNING id;
INSERT INTO users_stuff (
user_id,
money,
hasCar
) VALUES (
id,
1000,
false
);
上面的示例不起作用,因為第二個查詢永遠不會收到第一個的RETURNING
值,這將是新記錄的自動增量 ID。
不過有辦法嗎?
使用 CTE:
WITH u AS (
INSERT INTO users (name, email)
VALUES ('John Doe', 'johndoe@whatever.com')
RETURNING id;
)
INSERT INTO users_stuff (user_id, money, hasCar)
SELECT u.id, 1000, false
FROM u;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.