我有两个查询。第一个创建一个新用户。该表包含三个字段id
,name
和email
。该id
字段是一个自动增量值。
第二个查询使用ID值创建与此用户相关的其他数据。
如何RETURNING
将第一个查询的值传递给第二个查询?
例子:
INSERT INTO users (
name,
email
) VALUES (
'John Doe',
'[email protected]'
) 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', '[email protected]')
RETURNING id;
)
INSERT INTO users_stuff (user_id, money, hasCar)
SELECT u.id, 1000, false
FROM u;
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句