SQLRU.net
Разработка приложений баз данных

Начало » Использование СУБД » MySQL, MariaDB » Как удалить дубли из таблицы и обновить индексы связанных таблиц
Как удалить дубли из таблицы и обновить индексы связанных таблиц [сообщение #3168] Fri, 22 September 2023 15:31 Переход к следующему сообщению
Cr3at0r в настоящее время не в онлайне  Cr3at0r
Сообщений: 2
Зарегистрирован: September 2023
Junior Member
Допустим есть таблицы posts, tags и pivot-таблица post_tag для связи многие ко многим.
В таблице tags поле name не было сделано уникальным и юзеры добавили множество неуникальных тегов.
Как удалить все дубликаты из tags и автоматически обновить post_tag таким образом, чтобы индексы удаленных тегов стали индексами тех тегов, что остались после удаления и соответствуют им по полю name?
Re: Как удалить дубли из таблицы и обновить индексы связанных таблиц [сообщение #3169 является ответом на сообщение #3168] Fri, 22 September 2023 16:16 Переход к предыдущему сообщениюПереход к следующему сообщению
BlackEric в настоящее время не в онлайне  BlackEric
Сообщений: 251
Зарегистрирован: June 2022
Senior Member
Different ways to SQL delete duplicate rows from a SQL Table
Re: Как удалить дубли из таблицы и обновить индексы связанных таблиц [сообщение #3170 является ответом на сообщение #3169] Fri, 22 September 2023 16:22 Переход к предыдущему сообщениюПереход к следующему сообщению
Cr3at0r в настоящее время не в онлайне  Cr3at0r
Сообщений: 2
Зарегистрирован: September 2023
Junior Member
Нет проблемы удалить дубли, у меня проблема обновить индексы, чтобы сохранить информацию.
Re: Как удалить дубли из таблицы и обновить индексы связанных таблиц [сообщение #3171 является ответом на сообщение #3168] Fri, 22 September 2023 20:38 Переход к предыдущему сообщению
BlackEric в настоящее время не в онлайне  BlackEric
Сообщений: 251
Зарегистрирован: June 2022
Senior Member
Собираете в таблицу вида old_id new_id id которые нужно заменить.
Потом пачкой запросов меняете во всех таблицах используя вспомогательную.
И третьим шагом удаляете.
Предыдущая тема: Вопрос про PITR
Переход к форуму:
  


Текущее время: Mon Dec 11 17:50:01 GMT+3 2023

Общее время, затраченное на создание страницы: 0.00596 секунд