0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【MySQL】AUTO_INCREMENTの変更がなぜか反映されない場合

0
Posted at

概要

MySQL8のDBテーブルのAUTO_INCREMENTをある数にするコマンドを打っても、
なぜか反映されない...というときのために、備忘も込めて紹介。

原因

普通に以下のSQLコマンドでいけると思って、実行してみる。

ALTER TABLE sample_table AUTO_INCREMENT = 3; 

しかし、現在のAUTO_INCREMENT値を確認すると..

SHOW TABLE STATUS LIKE 'sample_table';   

15のままになっている。3にしたはずなのに反映されていない。。

原因は、SHOW TABLE STATUSは内部的にinformation_schemaを参照しており、
この統計情報がキャッシュされた古い値を返していたことが原因でした。

解決方法

information_schemaはキャッシュされた値を返すことがあるため
ANALYZE TABLEで統計情報を更新すると正しい値が反映されます。

以下のSQLでOK。

ANALYZE TABLE sample_table; 

すると、AUTO_INCREMENTが3になっていることを確認できました。
今後同様のことがあれば、AUTO_INCREMENT変更後にANALYZE TABLEを実行すると確実ですね。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?