При сдаче проекта имеем много тестовых данных, которые подчищаем:
пользователи, заказы, эл-ты инфоблоков. После подчистки, ID сущностей, разумеется, не сбрасываются, а продолжаются. Один раз клиент спросил меня о возможности сброса номеров заказа. Может заведем кнопку "Обнулить счетчики"? С подтверждением действия. В MySQL такая возможность есть:
ALT ER TABLE имя_таблицы AUTO_INCREMENT = 1;
/*правда ни разу не выполнял на таблицах Битрикса, да и вообще */
|
Разумеется, нужно чтобы человек понимал что делал. Как вариант - сделать эту кнопку в тех местах, где она будет востребована (например в самих заказах). Насколько подсказывает логика, кнопка может быть активной только тогда, когда в соответствующей таблице в БД нет строк (удалены все заказы, эл-ты инфоблоков и т.д.)
Конечно, тут разработчикам нужно внимательно проследить, не будет ли нарушения целостности данных.
UPD: сейчас выполнил запрос на сброс первичного ключа при заполненной таблице b_iblock_element. Добавил новый элемент в инфоблок через админку. Новый ID продолжился.
Удалил все строки из таблицы и еще раз выполнил предложенный выше запрос на сброс первичного ключа. Добавил эл-т в инфоблок через админку.
ID эл-та присвоилось значение "1". Следующему - "2". Что и хотелось видеть. Как и думал, сброс первичного ключа работает при очищенных записях в таблице.
Если кому-то очень сильно надо, уж лучше вручную, как минимум будет гарантия, что человек хорошо осознаёт, что именно он делает.
Если мы удаляем все записи из инфоблока, то Битрикс сам заботится о целостности данных - он просто сбрасывает в NULL все привязки к этим элементам очищаемого инфоблока. Ну а если эти ID используются в пользовательской таблице MySQL или еще где-то, то разработчик сам должен контролировать ситуацию в том случае, если записи из родительской сущности будут удалены.
Так что, строго говоря, проблему не вижу. Думаю, решаемая задача.
А если не удалили, то и руками менять автоинкремент нельзя.