share facebook facebook twitter menu hatena pocket slack

2011.11.30 WED

MySQLのLOAD DATA INFILE文でCSVを追加でインポートした時にAUTO_INCREMENTが連番にならない

櫛田 草平

WRITTEN BY 櫛田 草平

こんにちは。
職人見習いの櫛田です。

MySQLのバグのようでLOAD DATA INFILE文でcsvを追加でインポートした時にAUTO_INCREMENTが連番にならず、インポートしたレコード数にもよりますが、数百番飛んだ値になっていました。
そこで、連番になるようにAUTO_INCREMENTの値を指定して対応しました。
(※MySQLを再起動すれば、連番になるようです。)

○CSVのインポート

20111130.csvというファイルをインポートします。

LOAD DATA LOCAL INFILE "/home/hoge/20111130.csv" INTO TABLE dbname.tablename FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY 'rn' IGNORE 1 LINES (@a,@b,@c) SET name=@a,age=@b,job=@c;

○AUTO_INCREMENTの確認

下記でAUTO_INCREMENTの値を確認すると連番になっていないことが確認できます。

SHOW TABLE STATUS FROM dbname;

○AUTO_INCREMENTの指定

下記でAUTO_INCREMENTが連番になるように最新のレコードに割り当てられたAUTO_INCREMENTの値に
1足したものを指定します。

ALTER TABLE plan AUTO_INCREMENT = 10;

そして、再度CSVをインポートすると連番でデータが登録されます。

※この記事は、なかの人(KUSSY8077)が書いています。

櫛田 草平

櫛田 草平

cloudpackで運用、保守、構築、夜間対応を担当しており、日々様々な課題に対応していますのでこの経験を記事にしていけたらと思います。 櫛田 草平

cloudpack

cloudpackは、Amazon EC2やAmazon S3をはじめとするAWSの各種プロダクトを利用する際の、導入・設計から運用保守を含んだフルマネージドのサービスを提供し、バックアップや24時間365日の監視/障害対応、技術的な問い合わせに対するサポートなどを行っております。
AWS上のインフラ構築およびAWSを活用したシステム開発など、案件のご相談はcloudpack.jpよりご連絡ください。