On 24 Jul 2003, Greg Stark wrote: > > So I have to adjust a primary key by adding one to every existing record. > Obviously this isn't a routine operation, my data model isn't that messed up. > It's a one-time manual operation. > > However when I tried to do the equivalent of: > > update tab set pk = pk + 1 > > I got > > ERROR: Cannot insert a duplicate key into unique index tab_pkey > > Is that right? Obviously after completing the query there would be no > duplicate keys. Is this a case where I would need deferred constraints to > allow this? Even for immediate constraints shouldn't a single sql update be > able to go ahead as long as it leaves things in a consistent state?
I've run into this before. If your pks are in the range of say 1 to 1000, then just add 50000 to them, then subtract 49999... ---------------------------(end of broadcast)--------------------------- TIP 2: you can get off all lists at once with the unregister command (send "unregister YourEmailAddressHere" to [EMAIL PROTECTED])