Как бы вы организовали выдачу уникального кода?
Вариантов много. Самое простое - использовать UUID, с ними можно предполагать, что дублирования не будет. Можно генерировать код каким-то другим способом и проверять, нет ли его уже в БД (повторять, пока не сгенерируется уникальный код, но тут всё-равно могут быть коллизии).
Вы бы описали требования к этому коду.
1) Если достаточно постоянно увеличивающегося целого числа - то mysql + auto_increment.
Если AB1234, то можно из первых цифр этого полня сделать "AA", "AB", ...
2) Если код должен быть простой и уникальный, для быстрого доступа к секретной информации, то Вариант 1 + "-O-" + случайное число нужной длинны, записанное в базу. Например 123-O-374627634
3) MD5 - это конечно не "пользовательский" вариант. И может (теоретически) повториться.