У меня есть таблица, в которой в качестве первичного ключа используется автоматически увеличивающийся id.

В таблице есть записи с идентификатором, начинающимся с 1:

id    field1
==    ======
1     foo1
2     foo2
3     foo3

Есть ли способ обновить id для всех существующих записей , чтобы auto_increment начинался с другого номера ?:

id    field1
====    ======
1000     foo1
1001     foo2
1002     foo3

(Заказ не обязательно соблюдать, если это невозможно)

1
sandboxj 14 Мар 2018 в 14:19

2 ответа

Лучший ответ

Вы можете использовать update для изменения значений и alter table для обновления автоматического приращения до нового значения:

alter table t set auto_increment = 1003;  -- the next value

update t
    set id = id + 999;
4
Gordon Linoff 14 Мар 2018 в 12:21

В Sql Server это работает, MySql я не уверен

DECLARE @NewRowId int = 998;

DBCC CHECKIDENT('MyTableName', RESEED, @NewRowId)
1
14 Мар 2018 в 13:09