While this is a good overview of the options for primary key generation, there's no silver bullet here. Most projects that are using SQL should just use the gold standard: an auto-incrementing integer for an internal primary key. And then decouple the public-facing primary key from it into a separate column, whether it be ULID, UUID, or a random-project-slug-123.
Also, during debugging, it's a lot nicer to look at short primary keys than to have UUIDs flooding the screen.
Also, during debugging, it's a lot nicer to look at short primary keys than to have UUIDs flooding the screen.