1. You have to handle race conditions if there is ever more than one process writing to the DB at one time
2. It’s ambiguous whether a number is an ID. E.g. when looking at logs
3. Numbers leak information about table size, row age, and crucially future row IDs.