☒ I had originally implemented this in an application and ended up disliking it. It was on a table with a potential of several billion records. I ended up ditching this effort as it was cumbersome to work with at times. I haven't looked back since. I ended up going with an unsigned BIGINT which can go up to 18,446,744,073,709,551,615. This was good enough for my purposes. I think that I would revisit this if I had a situation where concurrency was a major concern and duplicate IDs could be possible.