csvファイルをMySQLワークベンチにインポートする方法は?


88

CSVファイルがあります。140万行のデータが含まれているため、そのcsvファイルの制限は約100万行であるため、Excelで開くことができません。

したがって、このファイルをMySQLワークベンチにインポートしたいと思います。このcsvファイルには次のような列が含まれています

"Service Area Code","Phone Numbers","Preferences","Opstype","Phone Type"

次のような列を含む「ダミー」という名前のテーブルをMySQLワークベンチで作成しようとしています。

ServiceAreaCodes,PhoneNumbers,Preferences,Opstyp,PhoneTyp. 

CSVファイルの名前はmodel.csv。ワークベンチの私のコードは次のようなものです:

LOAD DATA LOCAL INFILE 'model.csv' INTO TABLE test.dummy FIELDS TERMINATED BY ',' lines terminated by '\n';

しかし、私は次のようなエラーが発生しています model.CSV file not found


これは、dbForge Studio forMySQLのインポートウィザードでも実行できます。prnt.sc/e5iqy1
Devart

回答:


139

ENCLOSEDBY句が欠落していると思います

LOAD DATA LOCAL INFILE '/path/to/your/csv/file/model.csv'
INTO TABLE test.dummy FIELDS TERMINATED BY ','
ENCLOSED BY '"' LINES TERMINATED BY '\n';

そして、csvファイルのフルパスを指定します

データインファイルのロード-MySQLドキュメント


1
このコマンドでエラーは発生しませんが、model.csvファイルが見つからないなどのエラーが発生します。そのファイルは私のシステムデスクトップに保存されています
vps 2012

csvファイルは私のシステムデスクトップに保存されます
vps 2012

5
更新:非標準の文字を含む文字列をインポートする場合は、ステートメントに「CHARACTERSETutf8」の必要性を指摘すると便利です。LOADDATALOCALINFILE '/ path / to / file.csv' INTO TABLE db_name.table_name CHARACTER SET UTF8 FIELDSは'\ n'はにより終了行ENCLOSED BY '"' '' BYをTERMINATED、ターゲット表が/列もUTF8に設定する必要があります
ılǝ

1
また、キーワードLOCALを忘れてはなりません。クエリは適切です
Brij Raj Singh – MSFT 2013

2
mysqlワークベンチ6.2を使用してWindows7で「種類」を処理しました。ダブルスラッシュを使用する必要が'//path//to//your//csv//file//model.csv'あり、シングルスラッシュを含むすべてのフィールドが壊れました。
576i

69

データセットが小さい場合、GUIでそれを実現する方法は次のとおりです。

  1. クエリウィンドウを開く
  2. SELECT * FROM [table_name]
  3. メニューバーから[インポート]を選択します
  4. 結果グリッドの右下にある[適用]を押します

ここに画像の説明を入力してください

参照:http//www.youtube.com/watch?v = tnhJa_zYNVY


13
ただのメモ。そのインポートオプションは、Windowsマシンにのみ存在します。プラグインは明らかにまだ.Netベースであるため、LinuxまたはMacでは機能しません。
BrianC 2014年

8
インポート後、[適用]を押すことを忘れないでください。
スティーブピッチャー2014

7
注意してください、これは非常に遅くなる可能性があります。25,000行になるまでに数時間かかりました
Rob Sedgwick

2
時間の長さはハードウェアに大きく依存しているようです。私の自宅のコンピューターは10K行で完全に詰まっています。私の仕事用コンピュータは、85秒で約200列の243K行をインポートしました。
KathyA。

2
@BrianCこれはもはや当てはまらないようですが、Linuxバージョンでは表示されます。
jammerx2 2015年

21

スキーマの下のナビゲーターで、スキーマ/データベースを右クリックし、「テーブルデータインポートウィザード」を選択します

Macでも動作します。


これは、Ubuntu 18.04でcsvから新しいテーブルを作成するときに機能しました。ただし、この方法を使用して既存のテーブルにデータを追加することはできませんでした。
LP Whigley 2018

2

ありがとう:)それは私の問題を解決しました。それは...インポートされます一度我々は、(ない専門家のための)UIから、後に列名を変更することができます
vipul kumawat

うまくいかなかった多くのことを試みましたが、これはついにうまくいきました。ローカルデータのファイル設定をいじらなくても機能しました。MySQLは代わりに挿入を実行していると思います。
ペッパーシェーカー

1

現時点では、すべてのプラットフォームでCSVを(MySQL Workbenchを使用して)インポートすることはできません。また、そのファイルがMySQLサーバーホストと同じホストに存在しない場合はアドバイスされません。

ただし、mysqlimportを使用できます。

例:

mysqlimport --local --compress --user=username --password --host=hostname \
--fields-terminated-by=',' Acme sales.part_*

この例でmysqlimportは、拡張子が「part_」で始まる「sales」という名前のすべてのファイルをロードするように指示されています。これは、「分割」の例で作成されたすべてのファイルをロードするための便利な方法です。--compressオプションを使用して、ネットワークトラフィックを最小限に抑えます。--fields-terminated-by = '、'オプションはCSVファイルに使用され、-localオプションは受信データがクライアントにあることを指定します。--localオプションがないと、MySQLはデータベースホスト上のデータを検索するため、常に--localオプションを指定します。

AWS RDSのドキュメントには、このテーマに関する有用な情報があります


0

サーバーがリモートマシン上にある場合は、ファイルがローカルマシンではなく、リモートマシンにあることを確認してください。

ファイルがmysqlサーバーと同じマシンにある場合は、mysqlユーザーがファイルの読み取り/書き込み権限を持っていることを確認するか、ファイルをmysqlスキーマディレクトリにコピーします。

私の場合、ubuntuでは次のようになりました:/var/lib/mysql/db_myschema/myfile.csv

また、この問題に関連するものではありませんが、新しい行に問題がある場合は、sublimeTEXTを使用して行末をWINDOWS形式に変更し、ファイルを保存して再試行してください。


0

それは本当に長い間私を悩ませていたので、それは少しトリッキーに思えます。

テーブルを開くだけで([行の選択-制限10000]を右クリック)、新しいウィンドウが開きます。この新しいウィンドウには、「インポートアイコン」があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.