2011-08-12 11 views
0

私は1つのMYSQLテーブルを持っています。最初から最後まで自動的に増分フィールドを再生成するSQL文

このテーブルには、1つの列名SRNOがそのプライマリキーであり、自動インクリメントもあります。

私はそのテーブルに約25000個のレコードがありますが、テーブル間のレコードは削除されています。例えば

レコード番号10が削除されていないなど

私はそれが再び1から始まり、その欠落しているレコードを避けるために、最後のレコードで終わるように、すべての自動インクリメントフィールドを再生成するためにMySQLを実行するためのSQLスクリプトをしたいです。これは、一般的に参照整合性を持つことができます真剣に混乱として、この方法では、良いアイデアを考えられていない

+0

http://stackoverflow.com/questions/1895110/row-number-in-mysql –

+0

表を変更>ドロップ列>再度新しい列を追加する – PhD

答えて

0

感謝。これが美的なものなら、そのまま残しておくことをお勧めします。それは言って、ここであなたは何をすべきかです:

  • は新しいに古いテーブルからすべてのレコードを挿入し、古いものと同じスキーマを持つ新しいテーブルを作成し、1
  • にあなたの自動インクリメントを設定します自動増分列を除き、1つです。
  • が効果的にあなたのテーブルを「再シード」になる
  • 元の名前

これに新しいテーブルの名前を変更別のものに元のテーブルの名前を変更します。

関連する問題