"Nick Fankhauser" <nickf@ontko.com> writes:
> I tried:
> update test set new_pk = (select nextval('test_new_pk_seq'));
> but it wants to update *all* of the rows to the current nextval (I was
> hoping it would evaluate nextval on each row).
Yeah, the sub-select is taken (perhaps mistakenly) as something that
can be evaluated only once, because it doesn't depend on the outer
query. You are overthinking the problem; this should work:
update test set new_pk = nextval('test_new_pk_seq');
regards, tom lane