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
使用错误的值
我希望我能正确地理解这个问题。