我执行以下查询:
INSERT INTO users (id, email, password, gender)
VALUES (nextval('seq_user_id'), $2, $3, $4)
然后:
INSERT INTO images (id, data, filesize, filename, user_id)
VALUES (nextval($1), $2, $3, $4, currval('seq_user_id'));
我可以使用RETURNING id AS user_id
做同样的事情,然后将其传递给下一个查询,最好的方法是什么?
答案 0 :(得分:1)
我更喜欢RETURNING
,因为同样的方法适用于多值结果。
只有一个结果行时才能使用currval
。
此外,我不相信nextval
和currval
之间的评估顺序在出现在同一VALUES
子句中时会得到保证。因此,获取RETURNING
中的值并将其作为参数提供给下一个查询会更安全。