1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

MySQL CSVやTSVファイルからインポートする方法

Last updated at Posted at 2021-08-08

BULK INSERTが使えない。

SQL Serverで普通に使っていたBULK INSERTは使えない。

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that 
corresponds to your MySQL server version for the right syntax to use near 
'BULK INSERT `Sample`

LOAD DATA INFILE 構文を使う

LOAD DATA LOCAL 
INFILE 'C:\\ProgramData\\MySQL\\MySQL Server 8.0\\Uploads\\ファイル名.tsv' 
INTO TABLE `テーブル名`
FIELDS TERMINATED BY '\t'
LINES TERMINATED BY '\r\n'
IGNORE 1 LINES;

【ポイント】
・ファイルの格納場所は隠しフォルダになっているので、設置する際は見えるようにする
・クライアント側とサーバー側の「--local_infile」を「1(ON)」にする。(本記事後述)
→MySQL8.0からの仕様で、設定しないと、ERROR 3948 (42000)が発生する。

・ファイル拡張子は何でもOK!!
・条件指定は「`」バックではなく「'」シングルクオートを利用すること。
→ERROR 1064 (42000)が発生する

・'\t'は正規表現のタブを表す
・'\r\n'はWindowsの改行コード
・IGNORE 1 LINES; は1行目無視の意味。(今回1行目がフィールドの為)

--local_infileの設定

①クライアント側

ログイン時に「--local_infile=1」を指定。

sql
-u root -p --local_infile=1

②サーバー側

ログイン後に「--local_infile=1」を指定。

sql
-- 設定の確認(初期値:0)
SELECT @@local_infile;

-- 設定変更
SET PERSIST local_infile= 1;

実行結果 サンプル

sql
mysql> select * from game;
+---------+----------------------------------------------+--------+--------------------------+------------+-------------+
| ranking | title                                        | model  | maker                    | sales_2021 | sales_total |
+---------+----------------------------------------------+--------+--------------------------+------------+-------------+
|       1 | モンスターハンターライズ                     | Switch | カプコン                 |          2 |           2 |
|       2 | 桃太郎電鉄 ?昭和 平成 令和も定番!?          | Switch | KONAMI                   |          1 |           2 |
|       3 | スーパーマリオ 3Dワールド                    | Switch | 任天堂                   |        820 |         820 |
|       4 | リングフィットアドベンチャー                 | Switch | 任天堂                   |        623 |           2 |
|       5 | マリオカート8 デラックス                     | Switch | 任天堂                   |        475 |           3 |
|       6 | あつまれ どうぶつの森                        | Switch | 任天堂                   |        454 |           6 |
|       7 | Minecraft                                    | Switch | 日本マイクロソフト       |        370 |           2 |
|       8 | 大乱闘スマッシュブラザーズ SPECIAL           | Switch | 任天堂                   |        336 |           4 |
|       9 | 牧場物語 オリーブタウンと希望の大地          | Switch | マーベラス               |        281 |         281 |
|      10 | New ポケモンスナップ                         | Switch | ポケモン                 |        259 |         259 |
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?