2009年7月 6日

[mysql 14951] Re: auto_increment属性について

サン)奥野様

下記の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 となっておりました。
>>>>
>>>> 以上です。よろしくお願いいたします。
>>>>
>>>>
>>

投稿者 xml-rpc : 2009年7月 6日 15:20
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/86412
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。