26

MySQL に主キー列を持つテーブルがあります。

まあ言ってみれば:

ID | Value
1  | One
2  | Two
6  | Three
8  | Four
9  | Five

どうすればそれを取得できますか:

ID | Value
1  | One
2  | Two
3  | Three
4  | Four
5  | Five

他のテーブルはありません。ただ一つ。IDを適切なシリーズにしたいだけです。

なにか提案を??おそらくクエリ.. :)

4

3 に答える 3

61

このクエリを書くことで結果を達成する簡単な方法さえあります

SET @newid=0;
UPDATE tablename SET primary_key_id=(@newid:=@newid+1) ORDER BY primary_key_id;

このクエリは、主キーのインデックスを再作成します。1

于 2015-05-24T15:31:31.007 に答える
11

私には、あなたには2つの選択肢があるようです。

1) 新しいテーブルを作成し、既存のデータをコピーします。

2) 別の自動インクリメント フィールドを既存のテーブルに追加してから、元の列を削除します。

ALTER TABLE tableName ADD NewIdn INT NOT NULL AUTO_INCREMENT KEY
于 2012-04-20T08:27:50.160 に答える
0

phpmyadmin で A_I ボックス (自動インクリメント設定) のチェックを外し、[保存] をクリックしてからもう一度チェックを入れ、もう一度 [保存] をクリックしてこれを行いました。

于 2014-07-06T19:00:09.857 に答える