0

10,000 行の test.xls ファイルを mysql db テーブルにロードするにはどうすればよいですか?

以下のクエリを使用すると、このエラーが表示されます。

LOAD DATA INFILE 'd:/test.xls' INTO TABLE karmaasolutions.tbl_candidatedetail (candidate_firstname,candidate_lastname);

ここに画像の説明を入力

私の主キーは候補IDで、以下のプロパティがあります。

ここに画像の説明を入力

test.xls には以下のようなデータが含まれています。 ここに画像の説明を入力

テーブルには 60 までの候補が既に存在するため、候補 ID 61 から始まる行を追加しました。

解決策を提案してください。

4

2 に答える 2

1

Excel (またはテキスト ファイルを生成できるその他のプログラム) からデータをインポートするには、MySQL コマンド プロンプトから LOAD DATA コマンドを使用すると非常に簡単です。

Excel データを csv ファイルとして保存します (Excel 2007 の場合は [名前を付けて保存] を使用)。メモ帳などのテキスト エディタを使用して保存したファイルをチェックし、実際にどのように見えるか、つまりどの区切り文字が使用されているかなどを確認します。MySQL コマンド プロンプト (I' m 怠け者なので、通常は MySQL Query Browser – Tools – MySQL Command Line Client からこれを実行して、ユーザー名とパスワードなどを入力する必要がないようにします) 次のコマンドを入力します: LOAD DATA LOCAL INFILE 'C:\temp\yourfile.csv' INTO TABLE database.table ';' で終了するフィールド '''' で囲まれた行は '\r\n' で終了します (field1, field2); [編集: このコードをコピーして貼り付ける場合は、一重引用符 (') と二重引用符 (") を確認してください。WordPress がそれらを似たような別の文字に変更しているようです] :)

私自身のインポートからのいくつかのメモ – 異なる言語バージョン、MySQL バージョン、Excel バージョンなどを実行している場合、適用されない場合があります…</p>

TERMINATED BY – これがステップ 2 を含めた理由です。csv はデフォルトでコンマ区切りになると思っていましたが、少なくとも私の場合はセミコロンがデフォルトでした。 BY – 最初は '\n' だけで試しましたが、データベースにインポートされるキャリッジ リターン文字を取り除くために '\r' を追加する必要がありました。自動インクリメントがオンになっていること、そうでない場合は最初の行のみがインポートされます

原作者参照

于 2013-08-26T04:49:31.143 に答える