Midnightjapan

Archive for 7月, 2016

MySQL AUTO_INCREMENTを下げる

by jun on 7月.04, 2016, under Mysql, Programing

MySQL 5.5.48ストレージエンジンはInnoDBにてAuto_Increment値を上にあげるのは
mysql > show table status like ‘テーブル名’\G
mysql > ALTER TABLE テーブル名 AUTO_INCREMENT = 50000;
などで変更される。今回はたまたま1から256まで入っていたデータ移行は10000以上にしようとAuto_Increment値をあげておいたデータに対して、10000以上のデータは消して257から入れたい!と思ったときにこうしました。
mysql > ALTER TABLE テーブル名 AUTO_INCREMENT = 257;
実行上はOKとでるので調べてみると
*************************** 1. row ***************************
Name: テーブル名
Engine: InnoDB
Version: 10
Row_format: Compact
Rows: 1103
Avg_row_length: 2391
Data_length: 2637824
Max_data_length: 0
Index_length: 1474560
Data_free: 72351744
Auto_increment: 32687
Create_time: 2016-07-04 12:19:54
Update_time: NULL
Check_time: NULL
Collation: utf8_general_ci
Checksum: NULL
Create_options:
Comment:
1 row in set (0.02 sec)
と、まったくかわっていません。MySQLでは最大値+1以外の設定はできないそうです。
そこで10000以上のコンテンツはdeleteしました。
これでデータ上でもmax(id)は257になっています。
ここで以下を実行してみると
mysql > ALTER TABLE テーブル名 AUTO_INCREMENT = 257;
やはりかわりません。
答えはこうです。
mysql > ALTER TABLE テーブル名 AUTO_INCREMENT = 1;
こうすると最大値+1を計算してくれるようです。
要するにAUTO_INCREMENT値のリセットを行ったようです。

コメントなし :, more...



何かお探しですか?

以下にキーワードを入力してサイト内検索が可能です:

Still not finding what you're looking for? Drop a comment on a post or contact us so we can take care of it!