[前][次][番号順一覧][スレッド一覧]

mysql:14952

From: Mikiya Okuno <Mikiya Okuno <Mikiya.Okuno@xxxxxxxxxx>>
Date: Mon, 06 Jul 2009 16:12:32 +0900
Subject: [mysql 14952] Re: auto_increment属性について

岡田様

再現しました。バグのようです。最小のテストケースは以下のものです。

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]