lonejan
Постоялец
- Регистрация
- 7 Фев 2008
- Сообщения
- 128
- Реакции
- 11
- Автор темы
- #1
Доброго времени суток, комрады.
Стоит следующая задача: нужно генерировать для каждой записи в БД уникальный ИД, по которому так же можно определить к какой таблице он относится.
Генерировать буду хранимой процедурой MySQL, чтобы не создавать по два запроса в PHP. ИД будет настраиваемый по длине и состоит из латинский букв и чисел (1-0 A-Z a-z), причем первых два символа это будет ИД таблицы, например PR0001Qf, PR0001Qg, PR0001Qh. От генерации по UUID() отказался т.к. слишком большая длина, а UUID_SHORT() имеет ограничение уникальности при server_id > 255 и другие недостатки.
1. Но, что же получается, мне что нужно перед каждым INSERTом лочить таблицу на чтение и запись? Ведь теоретически в промежуток времени, между началом генерациии нового ИД и вставкой его в таблицу, второй клиент может так же попробовать сгенерировать новый ИД, который будет не уникальным.
2. Как получить идентификатор вставленной записи? Как вариант вижу делать все вставки через хранимые функции MySQL, но не хочется.
Интересуют так же ваши мысли по поводу.
Стоит следующая задача: нужно генерировать для каждой записи в БД уникальный ИД, по которому так же можно определить к какой таблице он относится.
Генерировать буду хранимой процедурой MySQL, чтобы не создавать по два запроса в PHP. ИД будет настраиваемый по длине и состоит из латинский букв и чисел (1-0 A-Z a-z), причем первых два символа это будет ИД таблицы, например PR0001Qf, PR0001Qg, PR0001Qh. От генерации по UUID() отказался т.к. слишком большая длина, а UUID_SHORT() имеет ограничение уникальности при server_id > 255 и другие недостатки.
1. Но, что же получается, мне что нужно перед каждым INSERTом лочить таблицу на чтение и запись? Ведь теоретически в промежуток времени, между началом генерациии нового ИД и вставкой его в таблицу, второй клиент может так же попробовать сгенерировать новый ИД, который будет не уникальным.
2. Как получить идентификатор вставленной записи? Как вариант вижу делать все вставки через хранимые функции MySQL, но не хочется.
Интересуют так же ваши мысли по поводу.