Это невероятно трудная проблема, поэтому каждая реализация СУБД имеет встроенный тип данных с автоматически увеличивающимся идентификатором.
ИСПОЛЬЗОВАТЬ IDENTITY
ПОЛЕ
Это действительно единственное правильное решение для этого. Если у вас высокая скорость транзакций, в вашем коде будет невероятное количество блокировок и блокировок для выполнения чего-то, что механизм разработан для автоматической обработки для вас.
Если вам нужно буквенно-цифровое поле, нет причин, по которым вы не можете иметь поле идентификации и varchar
и использовать их в качестве двойного ключа.