対処すべき外部キーの問題がないと仮定すると、このコードはそれを実行します:
set @id:=0;
update mytable
set id = (@id := @id + 1)
order by id;
外部キーの問題がある場合は、制約がこのように定義されていることを確認してください前 更新を実行します:
ALTER CHILD_TABLE ADD CONSTRAINT
FOREIGN KEY MYTABLE_ID REFERENCES MYTABLE
ON UPDATE CASCADE; -- This is the important bit
すべて完了したら、これを実行してauto_increment値を修正します。
SELECT MAX(ID) + 1 FROM MYTABLE; -- note the output
ALTER TABLE MYTABLE AUTO_INCREMENT = <result from above>;