- データベースにインポートしたい 50,000 行の 16 MB の CSV ファイルがあります。
- PHPMyAdmin インターフェースに移動し、「インポート」を選択して正しいオプションを設定します。
- インポートはエラーで失敗します
Invalid field count in CSV input on line 24,333
。 - Notepad++ で CSV ファイルを調べてオプションをオンにすると、
View -> Show Symbols -> Show all Characters
この行のすべてがまったく問題ないように見えます。つまり、正しくインポートされた前の行とまったく同じであることを意味します。
インポートで問題となっている部分を見つけるにはどうすればよいでしょうか?
機密情報が含まれているため、データのサンプルを提供することはできません。
答え1
このようなケースを見つけるには、区切り文字として解釈される可能性のある文字、または複雑な引用符や閉じられていない引用符を探します。ファイルの前の方のフィールド値の一部として改行がある場合は、行番号が間違っている可能性があるため、確認している行はインポートでエラーが発生している行ではない可能性があることに注意してください。
また、CSV ファイルを Excel または OpenOffice にインポートして、これらのアプリケーションがファイルを期待どおりに処理するかどうかを確認してください。これにより、問題がどこにあるかを視覚的に特定できるようになります。
答え2
私にとっての解決策は、Excel からすべてのコンテンツをコピー/貼り付けし、新しい Excel シートを作成してからすべてのコンテンツを貼り付けることでした。
その後、保存、アップロードなどを行います。
なぜこれが私にとってうまくいったのかは分かりませんが、うまくいきましたし、試してみる価値はあると思います。
答え3
既存のテーブルに .csv ファイルをインポートする場合は、まずテーブルの ID (主キー) を削除してから .csv ファイルをインポートし、インポート後に ID を主キーとしてテーブルに追加し直します。
新しいテーブルにインポートする場合は、新しいテーブルを作成する前にまず .csv ファイルをインポートし、.csv ファイルをインポートした後、要件に応じてインポートしたテーブルの名前を変更します。