Странное присвоение UID пользователя при регистрации

Главные вкладки

Аватар пользователя demarko demarko 9 ноября 2014 в 1:57

Здравствуйте уважаемые друпаловоды!

Буквально несколько дней назад столкнулся с проблемой (вроде ничего не менял, в модули ядра не лез) что присвоение uid вновь зарегистрированным пользователя ведется неправильно не uid+1, а uid+10+20 и тп, т.е. последний пользователь с uid 20.000 следующий 20200

Вижу что в модуле user.module есть строка 571
$account->uid = db_next_id(db_query('SELECT MAX(uid) FROM {users}')->fetchField());

Похоже она решает какой будет следующий uid, так если я запускаю эту строку в devel php execute, SQL похоже игнориуется и возвращается странный uid, если запущу через минуту то может быть и +5, если сразу запущу выполнение строки сразу два раза один за другим то ставится вроде правильно +1, но не к предыдущей записи uid в БД а тот идентификатор который выводился с помощью db_next_id() в предыдущий запуск.

Кто может сталкивался с этим? Есть какие соображения?

Получилось это спонтанно, работало все правильно и на тебе...

Комментарии

Аватар пользователя demarko demarko 9 ноября 2014 в 2:22

таблица sequences кстати живет своей жизнью, в ней постоянно меняется значение если даже никто не регился новый

Аватар пользователя Ch Ch 10 ноября 2014 в 5:18

> А что делать то тогда?
По ссылке перейти.

> Так скоро у меня будет миллионная регистрация нового пользователя
Чем это плохо?

Аватар пользователя demarko demarko 10 ноября 2014 в 23:20

Ch wrote:
> А что делать то тогда?
По ссылке перейти.

> Так скоро у меня будет миллионная регистрация нового пользователя
Чем это плохо?

Я того же мнения что и автор статьи, хочу последовательные номера uid.
В общем сделал модуль на основе того тутора, все теперь uid отдельно от других модулей считается.

Спасибо за ссылку! Smile