2

以下のコードを使用して、LOAD DATA LOCAL INFILE を使用して mysql テーブルにデータをロードしようとしています。

Mysql:

LOAD DATA INFILE '/var/www/vhosts/domain.com/httpdocs/test1.csv' INTO TABLE temp_table FIELDS TERMINATED BY ',' ENCLOSED BY '\"' LINES TERMINATED BY '\r\n' IGNORE 1 LINES (recloc,client_acc)

編集: LOAD DATA LOCAL INFILE を LOADA DATA INFILE に変更、SET id=null を削除、IGNORE 1 LINES を追加

エラーもインポートされたレコードもありません。問題は列名に関連していると思いますが、それらの名前がどうあるべきかを完全に理解するのに苦労しています。それらは CSV 内の実際の列名である必要がありますか? またはDBテーブルのフィールド名?また、auto_incremented プライマリ キー (id) も必要です。

CSV:

recloc,client_acc
"NLGSX3","CORPORATE"
"7SC3BA","QUALITY ASSURANCE"
"3B9OHF","90717-6710"

私が間違っているかもしれないことへの提案はありますか? ありがとう!

4

2 に答える 2

2

CSV の列名は不要なので、IGNORE 1 LINES句を追加する必要があります。

クエリの(recloc,client_acc)列は、テーブルの列と一致する必要があります。CSV の最初の列は に挿入されrecloc、2 番目の列は に挿入されclient_accます。

ステートメントで AUTO_INCREMENT 列を指定していなくても、テーブルに 1 つある場合は、自動的に入力されます。

于 2010-12-14T16:51:12.620 に答える
0

Excel から mysql へのデータ インポートの短くて便利なソリューション:

txt ファイル形式に適しています。詳細に:

tbl name=t1
feilds are= name varchar,email varchar;

text.txt ファイル <<== このテキスト ファイルの最初の行のテーブルの列名:

name,   email
"n1",   "e1"  next line 
"n2",   "e2" next line 
"n3",   "e3" next line 
"n4",   "e4" next line 
"n5",   "e5" next line 
"n6",   "e6" next line 
"n7",   "e7" next line 

plsは次の行のステートメントを無視しますwampのSQLクエリ

LOAD DATA INFILE 'c:/wamp/www/touch/text.txt' INTO TABLE t1 FIELDS TERMINATED BY ',' ENCLOSED BY '\"' LINES TERMINATED BY '\r\n' IGNORE 1 LINES(name,email)

このコマンドが正常に実行されるように、個別にフォルダーを作成しました。

本物は

C:\wamp\mysql\data\wamp\www\touch\text.txt <<==物理ファイルパスです。

ただし、c:/wamp/touch/text.txt について言及します。

于 2013-05-23T06:11:49.453 に答える