CSV ファイルを MySQL テーブルにインポートするにはどうすればよいですか?
P粉785957729
P粉785957729 2023-10-09 14:59:12
0
2
730

クライアントからの正規化されていないイベント ログ CSV を MySQL テーブルにロードして、通常の形式に再構築できるようにしようとしています。 CSV ファイルの各列のフィールドを持つ「CSVImport」というテーブルを作成しました。 CSV には 99 列が含まれているため、これ自体が大変な作業です:

リーリー

テーブルには制約はなく、すべてのフィールドは、カウント (INT で表される)、yes/no (BIT で表される)、価格 (DECIMAL で表される)、およびテキスト説明 (テキストによる)。

データをファイルにロードしてみました:

リーリー

テーブル全体が NULL で埋められます。

問題は、テキストの導入部分に複数の行が含まれており、MySQL が各新しい行がデータベースの行に対応しているかのようにファイルを解析していることだと思います。ファイルを問題なく Open にロードできます。

clientdata.csv ファイルには 2593 行と 570 レコードが含まれています。最初の行には列名が含まれます。カンマ区切りで、テキストは明らかに二重引用符で区切られていると思います。

更新:

ご質問がある場合は、マニュアルをお読みください: http://dev.mysql.com/doc/refman/5.0/en/load-data.html

LOAD DATA ステートメントに、推論できるほど賢い情報を追加したところ、正しい数のレコードが読み込まれるようになりました。

リーリー

しかし、完全な NULL レコードがまだたくさんあり、ロードされたデータはどれも適切な場所にないようです。

P粉785957729
P粉785957729

全員に返信(2)
P粉057869348

使用 mysqlimportテーブルをデータベースにロードします: p> リーリー

私はそれを http://chriseiffel.com/everything-linux/how-to-import-a-large-csv-file-to-mysql/

で見つけました。

区切り文字をタブにするには、--fields-termerated-by='\t'

を使用します。
いいねを押す +0
P粉210405394

問題の核心は、CSV ファイル内の列とテーブル内の列を一致させることにあるようです。

多くのグラフィカル mySQL クライアントには、この種のことを行うための非常に優れたインポート ダイアログ ボックスがあります。

私の好きな仕事は Windows ベースの HeidiSQL です。 LOAD DATA コマンドを構築するためのグラフィカル インターフェイスが提供され、後でプログラムで再利用できます。

スクリーンショット: [テキスト ファイルのインポート] ダイアログ ボックス

[テキスト ファイルのインポート] ダイアログ ボックスを開くには、[ツール] > [CSV ファイルのインポート] に移動します。 :

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート