mysql:14953
From: Takayuki Okada <Takayuki Okada <okada.takayuki@xxxxxxxxxx>>
Date: Mon, 06 Jul 2009 16:26:51 +0900
Subject: [mysql 14953] Re: auto_increment属性について
サン)奥野様 再現確認、および、バグ登録ありがとうございました。 とりあえずは、先日のメールにも書きましたが、load後に一旦、 MySQLを再起動することで対処します。 また、 >ちなみに、LOAD DATAの文法では、NULL値は「\N」と表記しなければいけませんので >ご注意ください。この点も疑いましたが違ったようです。 ですが、ちゃんとマニュアル見ないといけませんね。。。 商用環境の移行時には、\Nでloadするようにいたします。 ご対応、ありがとうございました。 以上です。よろしくお願いいたします。 -------------------- Mon, 06 Jul 2009 16:12:32 +0900 >岡田様 > >再現しました。バグのようです。最小のテストケースは以下のものです。 > >shell> cat data.txt >\N >\N > >mysql> create table inctest (inc_col bigint not null primary key auto_increment) engine innodb; >Query OK, 0 rows affected (0.07 sec) > >mysql> load data infile 'data.txt' into table okatest; >Query OK, 2 rows affected (0.00 sec) >Records: 2 Deleted: 0 Skipped: 0 Warnings: 0 > >mysql> show create table inctest\G >*************************** 1. row *************************** > Table: inctest >Create Table: CREATE TABLE `inctest` ( > `inc_col` bigint(20) NOT NULL AUTO_INCREMENT, > PRIMARY KEY (`inc_col`) >) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 >1 row in set (0.00 sec) > >2行挿入しただけなのにAUTO_INCREMENT=4になっています。 > >MyISAMでも試して見ましたが、MyISAMではAUTO_INCREMENTの値は正常なようです。 > >というわけでバグ登録しておきました。 >http://bugs.mysql.com/45960 > >ちなみに、LOAD DATAの文法では、NULL値は「\N」と表記しなければいけませんので >ご注意ください。この点も疑いましたが違ったようです。 > >よろしくお願いします。 >-- >Mikiya Okuno, MySQL Support Engineer >Sun Microsystems KK, Tokyo, Japan >http://www-jp.mysql.com/ > >On 06/07/2009, at 3:20 PM, Takayuki Okada wrote: > >> サン)奥野様 >> >> 下記のDDL文でテーブルを作成しました。 >> >> --- >> CREATE TABLE okatest ( >> incremental_col BIGINT AUTO_INCREMENT NOT NULL >> ,system_id CHAR(4) BINARY NOT NULL >> ,terminal_id CHAR(12) BINARY NOT NULL >> ,file_id varchar(4) BINARY NOT NULL >> ,download_date timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP >> ,PRIMARY KEY ( >> incremental_col >> ) >> ) >> AUTO_INCREMENT = 0 >> ,ENGINE = InnoDB; >> >> --- >> ■csvのフォーマット(サンプル) >> NULL,"0012","0180390 ","001","2009-03-07 10:06:36" >> NULL,"0012","0180390 ","002","2009-03-07 10:12:38" >> NULL,"0030","0014 ","0100","2009-03-07 10:25:01" >> : >> --- >> ■loadのコマンド >> load data infile "okatest.csv" into table okatest fields terminated by ',' enclosed by '"' escaped by ''; >> --- >> ■バージョン(いまさらですが) >> OS:Solaris10 >> MySQL:MySQL Community Server (GPL) 5.1.34 >> >> 以上です。よろしくお願いいたします。 >> >> -------------------- >> Mon, 06 Jul 2009 14:27:10 +0900 >>> 岡田様 >>> >>> 返事が遅くなりすみません。 >>> >>> 手元のマシンで試して見ましたが、特にAUTO_INCREMENTの値が >>> LOAD DATAによっておかしくなることはありませんでした。 >>> 追加でテストしてみますのでテーブル定義を見せて頂けませんか? >>> >>> よろしくお願いします。 >>> -- >>> Mikiya Okuno, MySQL Support Engineer >>> Sun Microsystems KK, Tokyo, Japan >>> http://www-jp.mysql.com/ >>> >>> On 02/07/2009, at 8:56 AM, Takayuki Okada wrote: >>> >>>> サン)奥野様 >>>> >>>> ご返信ありがとうございます。 >>>> >>>> load結果は、 >>>> Records: 14087 Deleted: 0 Skipped: 0 Warnings: 0 >>>> と表示されますので、また、CSVファイルの行数もこれに等しく、 >>>> ロールバックはされていないものと思ってます。 >>>> >>>> load後に一度、MySQLを再起動すれば、問題なく、 >>>> 連番となってくれることは確認済みですので(*)、 >>>> 移行手順にしちゃいえばいいんですけど、気になります。 >>>> >>>> (*)loadで挿入後は、insertのみの運用を想定しています >>>> >>>> 以上です。よろしくお願いいたします。 >>>> >>>> -------------------- >>>> Wed, 01 Jul 2009 18:47:28 +0900 >>>>> 岡田様 >>>>> >>>>> 他に考えられる可能性としては、ロールバックによるものです。 >>>>> AUTO_INCREMENTカウンタはロールバックが発生しても元には戻りません。 >>>>> 例えば次のような処理をすると、AUTO_INCREMENTカウンタの値は増えてしまいます。 >>>>> >>>>> mysql> BEGIN; >>>>> mysql> INSERT INTO tbl (cols) VALUES(vals); >>>>> : >>>>> mysql> ROLLBACK; >>>>> >>>>> >>>>> LOADの処理中にトランザクションがロールバックしたということはございませんでしょうか? >>>>> >>>>> -- >>>>> Mikiya Okuno, MySQL Support Engineer >>>>> Sun Microsystems KK, Tokyo, Japan >>>>> http://www-jp.mysql.com/ >>>>> >>>>> On 01/07/2009, at 6:05 PM, Takayuki Okada wrote: >>>>> >>>>>> サン)奥野様 >>>>>> >>>>>> ご回答ありがとうございます。 >>>>>> >>>>>> 手順ですが、1.の直前で、drop table⇒create table >>>>>> しております。 >>>>>> >>>>>> 再度、前後で、show table status を実行したところ、 >>>>>> >>>>>> load直前の Auto_increment の値は、1で、 >>>>>> load直後は、16384 となっておりました。 >>>>>> >>>>>> 以上です。よろしくお願いいたします。 >>>>>> >>>>>> >>>> >> >>
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]