Вы здесь

Как переназначить счётчик id для entity type?

0

Приветствую.
В процессе разработки своего модуля допустил небольшую ошибку в цикле программного создания сущности определенного типа.
В результате вместо 4 сущностей я создал 23 000+ :)

Удалить их не составило труда, только вот теперь все новые сущности имеют ID "24xxx"
По большому счёту, проблем это не вызывает, кроме непонятных для клиента значениях ID в табличках сущностей, но всё же, не в первый раз этот вопрос меня интересует...
Можно ли как-то переназначить этот ID, чтобы новые сущности начинались, к примеру, с числа 100?

Версия Drupal: 
7.x
Категория: 
Entity API
Связанные проекты: 
Entity API
Вопрос задан 05.09.2015 - 03:51

Ответы

1

ID cущности задает не друпал, а база данных.
Например, для нод в таблице node есть поле nid. У него установлено свойство AUTO_INCREMENT. Это значит, что как только в БД добавляется новая строка (новая нода), то nid у нее становится на единичку больше, чем в прошлый раз. И не важно, были удалены прошлые строки или нет.
Поэтому надо сделать запрос к БД как в ответе «How to reset AUTO_INCREMENT»:

ALTER TABLE tablename AUTO_INCREMENT = 1

Думаю, лучше этим не заниматься :-)

Ответ дан 05.09.2015 - 04:36

спасибо за наводку, разобрался.
Думаю, если удалить ВСЕ тестовые entity и затем поставить AUTO_INCREMENT = 1, не должно быть проблем при создании новых...

Комментарий оставлен 05.09.2015 - 04:58

Думаю, не будет, если у других сущностей не будет связи с удаляемыми сущностями.

Комментарий оставлен 05.09.2015 - 05:07

Я бы тоже не советовал играть с автоинкрементом, а то потом будет: "Алярм, спасите, ничего !@#$ не работает"!))

Комментарий оставлен 05.09.2015 - 05:16

проблем не будет если между двумя изменениями автоинкремента работать с сущностями исключительно через api не нарушая целостность бд

Комментарий оставлен 30.09.2015 - 03:02