Мне нужно создать уникальный «иды», улов, он может быть только между 1 - 99999.MySQL счетчик для конкретных ситуаций
«Хорошее» Дело в том, что он должен быть уникальным только в группе с другой колонкой.
У нас есть группы, каждая группа имеет свой собственный «GROUP_ID», и каждая группа должна что-то вроде unique('group_id', 'increment_id')
The 99999 записей достаточно в течение нескольких лет для каждой группы прямо сейчас, но это не достаточно для всех групп вместе , поэтому я не могу просто создать таблицу с AUTO_INCREMENT и вставить туда записи и сделать свой автоматический приращение.
Например, если мне нужно 5 записей для группы один и три записи для группы два, я полагаю, чтобы получить что-то вроде этого:
group_id, increment_id
1, 1,
1, 2,
1, 3,
1, 4,
1, 5,
2, 1
2, 2,
2, 3
Кроме того, конфликт не является вариантом, поэтому, используя что-то вроде «длина» может быть сложной, если она выполнена программно (может быть, например, 10 запросов одновременно, каждый из них сначала выбирает длину для данного group_id, а затем пытается создать 10 строк с таким же increment_id)
Однако я думаю - если Я задал его как значение подзаголовка count, чем всегда будет «хорошо»?
Первый вариант не работает сам по себе - он поднимался каждый раз, когда я ставил запись там, поэтому дошел до 99999 намного раньше – libik
Однако второй вариант - как насчет столкновений? Если для создания таких записей в базу данных приходит много параллельных запросов, всегда ли это «нормально», или может произойти сбой, потому что выбор «max» в заданное время больше не максимальный при попытке включить новую запись? – libik
вам нужно обновить current_counter только для определенного group_id, каждая группа будет иметь разделенные счетчики, как вы пожелаете. –