Как создать уникальный идентификатор без использования AUTOINCREMENT - PullRequest
3 голосов
/ 07 мая 2010

Я экспортирую данные из csv в базу данных mysql, я хочу, чтобы база данных генерировала уникальный идентификатор для каждой импортируемой записи. Я хочу использовать уникальное поле при создании номера квитанции в отчете Crystal.

Что бы вы предложили как лучший способ сделать это?

Ответы [ 2 ]

3 голосов
/ 07 мая 2010

Если вы не хотите выполнять автоинкремент, единственный другой способ практически гарантировать уникальность - это использовать GUID в качестве идентификатора.

Я говорю "виртуально", поскольку естьтеоретическая вероятность того, что один и тот же GUID может быть сгенерирован дважды, но он фактически равен нулю для всех повседневных целей.Из статьи Википедии:

Общее число уникальных ключей (21 28 или 3,4 × 10 38 ) настолько велико, что вероятность того жечисло, генерируемое дважды, чрезвычайно мало, и были разработаны определенные методы, помогающие избежать дублирования чисел.

2 голосов
/ 07 мая 2010

Автоинкремент - абсолютно верный способ сделать это в MySQL, есть ли веские основания не использовать его?

Если вам нужно что-то более похожее на последовательности Oracle, вы можете использовать другую таблицу со столбцом автоинкремента .

...