1

テキストファイルをMySQLデータベースにインポートしようとしていますが、最初のフィールド(card_no)をすべてのレコードに完全に入力するのに問題があります。ファイルをインポートした後(エラーは発生しません)、最初のレコードは正しく表示されますが、他のレコードは表示されません。誰かが私がこれを改善する方法を教えてもらえますか?-そして、問題が発生した場合に備えて、phpMyAdminを使用してファイルをロードしていました。 - 御時間ありがとうございます。

データベースの構造は次のとおりです。

Field       Type            Collation         Attributes    Null    
card_no     smallint(6)                       Yes           NULL
name        varchar(100)    latin1_swedish_ci No    
artist      varchar(30)     latin1_swedish_ci Yes           NULL
color       varchar(25)     latin1_swedish_ci Yes           NULL
rarity      varchar(1)      latin1_swedish_ci Yes           NULL
expansion   varchar(50)     latin1_swedish_ci Yes           NULL

コードは次のとおりです。

    LOAD DATA LOCAL INFILE 'C:\\xampp\\tmp\\php43.tmp'
    INTO TABLE `mtginfo` FIELDS TERMINATED BY ';'
    ENCLOSED BY '"' ESCAPED BY '\\' LINES TERMINATED BY ',';

インポートされたファイルは次のとおりです。

    "1";"Ajani Goldmane";"Aleksi Briclot";"White";"M";"Magic 2010",
    "2";"Angel's Mercy";"Andrew Robinson";"White";"C";"Magic 2010",
    "3";"Armored Ascension";"Jesper Ejsing";"White";"U";"Magic 2010",
    "4";"Baneslayer Angel";"Greg Staples";"White";"M";"Magic 2010",
    "5";"Blinding Mage";"Eric Deschamps";"White";"C";"Magic 2010"

出力のサンプルを次に示します。

    card_no name            artist          color   rarity  expansion
    1       Ajani Goldmane  Aleksi Briclot  White   M       Magic 2010
    0       Angel's Mercy   Andrew Robinson White   C       Magic 2010
    0       Armored Ascensi Jesper Ejsing   White   U       Magic 2010
    0       Baneslayer Ange Greg Staples    White   M       Magic 2010
    0       Blinding Mage   Eric Deschamps  White   C       Magic 2010
4

2 に答える 2

1

すべての新しい行は、いくつかの空白で始まります。LINES STARTING BY句を指定して処理する必要があります。例:-

LOAD DATA LOCAL INFILE 'd:\\1\\php43.tmp'
INTO TABLE 'C:\\xampp\\tmp\\php43.tmp'
FIELDS TERMINATED BY ';' ENCLOSED BY '"' ESCAPED BY '\\'
LINES STARTING BY '        ' TERMINATED BY ',';
于 2012-06-21T06:38:58.143 に答える
0

自分の質問に答えるためのプロトコルがわからないので、他の誰かがこの問題を抱えている場合に備えて、私が見つけた解決策を投稿します。--CARD_NOフィールドタイプがsmallintであり、非整数タイプをロードしようとしています。したがって、インポートはchar型(引用符のためにchar)をロードせず、次のフィールドに移動します。--Devartの回答に改めて感謝します。あなたの回答は私の問題を修正しませんでしたが、それは私に私の問題についてもっと考えさせました。

于 2012-06-21T16:07:50.623 に答える