• 締切済み

誤って削除したIDカラムを復元する方法

データを入力している最中、誤ってオートインクリメントのIDカラム(int 11)を削除してしまいました。 このテーブルのそれぞれのレコードに再度IDを割り振りたいです。 まだこのデータを使って何か使っているわけではないので、 IDの値自体は元のものでなくてもかまいません。 ID name 1 aaa 3 bbb 6 ccc 7 ddd : などでしたら、 ID name 1 aaa 2 bbb 3 ccc 4 ddd : と、そとりあえず個々のレコードに適当なIDを設定することができれば十分です。 このような設定を行う方法をご教示ください。 よろしくお願いいたします。

みんなの回答

回答No.3

Dumpとってテーブル作り直してインポートする

  • freetaka
  • ベストアンサー率53% (106/197)
回答No.2

オートインクリメントは主キーにしか設定できないので 次の構文で削除してしまったテーブルに追加することができます alter table テーブル名 add id int primary key auto_increment first;

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

create table hoge(ID int not null primary key auto_increment,name varchar(10)); insert into hoge values(1,'aaa'),(3,'bbb'),(6,'ccc'),(7,'ddd'); set @ID:=0; update hoge set ID=(@ID:=@ID+1) order by ID; alter table hoge auto_increment=1; 今回のケースだとIDのカラムが削除されているならIDでソートはできないのでorder by句は不要。 ただしデータの出現順はorder by句が無い限り保障されないのでIDは元の 順番で振られる保障はありません

関連するQ&A