Как массово изменить значение ID в таблице wp_posts из базы данных сайта WordPress?
Привет всем!
Как видите из скриншота,
значения ID (слева в таблице) внезапно подскочила с 7153 до 103125.... Как массово заменить каждый ID и каждое значение в других таблицах базы на 7153+1+[номер итерации]?
Надеюсь понятно объяснил, заранее спасибо
Дополнительно:
А потом окажется, что эти ID использовались для связывания других таблиц, и всё развалилось... причём восстановление в этом случае будет крайне непростым.
Не трогай ID-автоинкремент. Он вообще не для тебя существует.
Сергей Горностаев @sergey-gornostaev Куратор тега SQL Седой и строгий Идентификаторы должны оставаться неизменны, в этом их суть.
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос

Массово менять
IDвwp_postsпочти всегда плохая идея. В WordPress ID записи — это первичный ключ, на него ссылаютсяwp_postmeta.post_id, связи терминов, вложения, меню, заказы WooCommerce, ревизии, данные плагинов и иногда внешние интеграции. Если заменить толькоwp_posts.ID, сайт развалится. Если пытаться заменить везде, легко пропустить таблицы плагинов.Сам скачок автоинкремента с 7153 до 103125 не является проблемой. Это может произойти после импорта, удаления большого количества записей, миграции, резервного восстановления или ручной вставки строки с большим ID. На работу сайта это не влияет. ID не обязан быть красивым и непрерывным.
Максимум, что можно безопасно проверить, — текущее значение автоинкремента:
SHOW TABLE STATUS LIKE 'wp_posts';
Если в таблице нет записей с ID выше нужного значения, можно выставить следующий автоинкремент:
ALTER TABLE wp_posts AUTO_INCREMENT = 7154;
Но это не переименовывает существующие записи. Команда только задаёт следующий ID для новых строк, и MySQL всё равно не поставит значение ниже текущего максимального ID в таблице.
Если у вас уже есть записи с ID 103125 и выше, оставьте их как есть. Если цель — убрать визуальный скачок в админке, это не стоит риска. Если цель — исправить последствия некорректного импорта, правильный путь такой:
Теоретически можно построить карту старых и новых ID и обновить все связанные таблицы транзакцией, но для WordPress с плагинами это уже миграционная задача, а не простой SQL-запрос. На продакшене без бэкапа и тестового прогона так делать нельзя.