Как можно изменить идентификатор записи в базе данных?

Как можно массово изменить и переназначить уникальные идентификаторы новостей в базе данных, чтобы они следовали по порядку от id1 до idN?
  • 17 декабря 2023 г. 22:06
Ответы на вопрос 2
Чтобы изменить идентификатор записи в базе данных, необходимо выполнить несколько шагов:

1. Создайте временную таблицу, в которую будут скопированы данные из оригинальной таблицы:

   ```sql
   CREATE TABLE temp_table AS SELECT * FROM original_table;
   ```

2. Очистите оригинальную таблицу:

   ```sql
   DELETE FROM original_table;
   ```

3. Обновите идентификаторы записей во временной таблице согласно новому порядку:

   ```sql
   UPDATE temp_table SET id = (id + N - 1) ORDER BY id;
   ```

   Здесь `N` - общее количество записей в таблице.

4. Вставьте обновленные записи из временной таблицы обратно в оригинальную таблицу:

   ```sql
   INSERT INTO original_table SELECT * FROM temp_table ORDER BY id;
   ```

5. Удалите временную таблицу:

   ```sql
   DROP TABLE temp_table;
   ```

После выполнения этих шагов, идентификаторы новостей будут следовать по порядку от `id1` до `idN`.

Важно отметить, что при изменении идентификаторов может возникнуть необходимость обновления связанных данных в других таблицах, чтобы они указывали на корректные идентификаторы.
Сотни раз задавался подобный вопрос. 
Если кратко - не надо этого делать.
Если нужны детали, воспользуйтесь поиском и изучите ответы на уже заданные вопросы.
Первые из поисковика:
Как сделать ID записи последовательными без пропусков?
https://ru.stackoverflow.com/questions/125644/
Похожие вопросы