- 締切済み
誤って削除した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を設定することができれば十分です。 このような設定を行う方法をご教示ください。 よろしくお願いいたします。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- kudakuda1211
- ベストアンサー率33% (4/12)
Dumpとってテーブル作り直してインポートする
- freetaka
- ベストアンサー率53% (106/197)
オートインクリメントは主キーにしか設定できないので 次の構文で削除してしまったテーブルに追加することができます alter table テーブル名 add id int primary key auto_increment first;
- yambejp
- ベストアンサー率51% (3827/7415)
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は元の 順番で振られる保障はありません