In my example, I just give each record a different ID to access it efficiently.
In our business cases, some times, we also use some prefix letter like 'SO', "PO' combining with the current year, month and then a sequence to make a invoice ID, for example, SO201507_1001, PO201503_1280, etc. As these IDs would be the most important attribute to the business, so, we hope there is no gap for the IDs. Regards, Daojing Zhou. On Wed, Jul 15, 2015 at 2:33 AM, Peter Geoghegan <p...@heroku.com> wrote: > On Sun, Jul 12, 2015 at 4:09 AM, Yourfriend <doudou...@gmail.com> wrote: > > Suggestion: When a conflict was found for UPSERT, don't access the > > sequence, so users can have a reasonable list of ID. > > This is not technically feasible. What if the arbiter index is a serial PK? > > The same thing can happen when a transaction is aborted. SERIAL is not > guaranteed to be gapless. > -- > Peter Geoghegan >