1)第一次查询

INSERT INTO stay_in_touch_contacts (id, facebook, twitter, instagram, external_contact) VALUES (nextval(seq_stay_in_touch_contacts), 'somelink', 'somelink', 'someling', 'somelink');

2)第二次查询
Update users SET stay_in_touch_contacts_id=currval('seq_stay_in_touch_id') WHERE ...;

它们在我的代码中一个接一个地出现。
当数据库将同时使用时,此查询是否可能导致意外的列引用?
如何避免?

最佳答案

currval()是特定于会话的。
如果一个单独的会话增加了您的序列,currval()将继续返回您的预期值,并且update语句不会为stay_in_touch_contacts_id使用错误的值
我希望我能正确地理解这个问题。

09-05 05:12