使用currval进行数据库更新引用

时间:2013-11-30 05:20:17

标签: sql database postgresql

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 ...;

他们在我的代码中逐一进行。

当同时使用数据库时,此查询是否可能导致意外的列引用? 如何避免?

1 个答案:

答案 0 :(得分:1)

currval()是特定于会话的。

如果单独的会话增加了您的序列,currval()将继续返回您的预期值,并且更新语句将不会使用错误的值stay_in_touch_contacts_id

我希望我能正确理解这个问题。