mysql:14941
From: Mikiya Okuno <Mikiya Okuno <Mikiya.Okuno@xxxxxxxxxx>>
Date: Wed, 01 Jul 2009 14:39:57 +0900
Subject: [mysql 14941] Re: auto_increment属性について
岡田様 サンの奥野です。 On 01/07/2009, at 11:49 AM, Takayuki Okada wrote: > その後、仕様上は、単一のユニークでないといけないとのことから、 > 構成を見直したうえ、いろいろと検証をやってみましたが、 > 下記の手順できれいな連番にならなくて困ってます。 > > 1.csvファイル14087件をload > 2.auto_incrementカラムのmax値は、14087 > 3.続いて、1件をinsert > 4.auto_incrementカラムのmax値は、16384★ > 5.続いて、1件をinsert > 6.auto_incrementカラムのmax値は、16385 > > 4.で、なぜ、こんなにも飛んでしまうのでしょうか? 2通りの可能性が考えられます。 1. DELETE文でテーブルを空にした。 LOADする前にテーブルをDELETE文で空にされてませんでしょうか? DELETE文などで行を削除した場合、AUTO_INCREMENTカウンタの値が 残ってしまいます。AUTO_INCREMENTカウンタの値を初期値(1)にするには TRUNCATEする必要があります。 この状態ではAUTO_INCREMENTカウンタの値が大きいのですが、明示的に値を指定すれば AUTO_INCREMENTカウンタより小さい値でもINSERTすることが可能です。 LOADはCSVファイルから行われたということなので、AUTO_INCREMENTカラムの値も 書かれていたのではないでしょうか。 この後、明示的に値を指定しないでINSERTすると、AUTO_INCREMENTカウンタが 利用されます。 2. CREATE TABLE tbl LIKE orig_tblでテーブルを作成した。 元のテーブルからAUTO_INCREMENTカウンタの値も拾ってきますのでご注意下さい。 今後の検証においては、現在のAUTO_INCREMENTカウンタ値を調べて頂くのが良いと思います。 「SHOW CREATE TABLE テーブル名」または「SHOW TABLE STATUS」コマンドで AUTO_INCREMENTカウンタ値を表示することができます。 また、もしAUTO_INCREMENT値が意図したものと異なっていた場合には、TRUNCATEで リセットするか、ALTER TABLEで変更が可能です。 mysql> TRUNCATE テーブル名; or mysql> ALTER TABLE テーブル名 AUTO_INCREMENT=1; ではでは。 -- Mikiya Okuno, MySQL Support Engineer Sun Microsystems KK, Tokyo, Japan http://www-jp.mysql.com/
14933 2009-06-22 11:19 [Takayuki Okada <okad] auto_increment属性について 14934 2009-06-22 11:34 ┣[hiroshi morimoto <ma] 14935 2009-06-22 11:39 ┣[hiroshi morimoto <ma] 14936 2009-06-22 17:04 ┣[chuuken kenkou <ken_] 14937 2009-06-22 17:24 ┃┗[Takayuki Okada <okad] 14938 2009-06-22 19:32 ┗["wabiko.takuma" <wab] 14940 2009-07-01 11:49 ┗[Takayuki Okada <okad] -> 14941 2009-07-01 14:39 ┗[Mikiya Okuno <Mikiya] 14942 2009-07-01 18:05 ┗[Takayuki Okada <okad] 14943 2009-07-01 18:47 ┗[Mikiya Okuno <Mikiya] 14944 2009-07-02 08:56 ┗[Takayuki Okada <okad] 14950 2009-07-06 14:27 ┗[Mikiya Okuno <Mikiya] 14951 2009-07-06 15:20 ┗[Takayuki Okada <okad] 14952 2009-07-06 16:12 ┗[Mikiya Okuno <Mikiya] 14953 2009-07-06 16:26 ┗[Takayuki Okada <okad]