2016-05-03 8 views
1

800 MBのCSVファイルをMySQL 5.7にインポートする際に問題があります。大規模なCSVをMySQL57にインポートする際の問題 - 一部の列内の不正確な整数値

基本的に、私は以下のような特定の行の3列のための(複数の)警告を取得しています: ' ':

5290818影響行(複数可)、6警告(S):1366誤った整数値列 'hotel_id'の列 'hotel_id'に対して行1366 1366列の 'currency_id'列336に ' 'が正しくありません1366整数値が正しくありません:列 'hotel_id'の列 'hotel_id'に ' ' 1366 1366整数値が正しくありません: 列'available_cnt' in row 7399 1366整数値が正しくありません:行 '7508で' available_cnt 'の' 'が正しくありません1366整数値が正しくありません:' 'for' a '列' 5290818削除:0 スキップ:0警告:行7700枚のレコードと「vailable_cnt 6

私は、これは問題の列のユーザー変数を代入し、いくつかのチェックを行う必要理解します。

しかし、私は構文を理解していない、誰か私にそれを説明できますか?

ありがとうございました!この作業ができ、それは少数の項目のみですので

CREATE TABLE `primary_data`.`oFfer` (
    `id` INT NOT NULL, 
    `hotel_id` INT NULL DEFAULT NULL, 
    `currency_id` INT NULL DEFAULT NULL, 
    `source_system_code` VARCHAR(64) NOT NULL, 
    `available_cnt` INT NULL DEFAULT NULL, 
    `sellings_price` FLOAT NOT NULL, 
    `checkin_date` DATE NOT NULL, 
    `checkout_date` DATE NOT NULL, 
    `valid_offer_flag` TINYINT(1) NOT NULL, 
    `offer_valid_from` DATETIME NOT NULL, 
    `offer_valid_to` DATETIME NOT NULL, 
    `breakfast_included_flag` TINYINT(1) NOT NULL, 
    `insert_datetime` DATETIME NOT NULL, 
    PRIMARY KEY (`id`)); 
+0

テーブルをimport_dataとして複製します。 INTフィールドをvarcharに変更します。インポートを選択し、チェックを実行してprimary_dataに挿入します。私は非常に大きなCSVファイル(65,000行+)をこの方法でインポートします。特に、そのコンテンツのフォーマットを制御できない場合です。 – Brian

答えて

1

:ここ

は、私はCSVをMYSQL

LOAD DATA LOCAL INFILE 'C:/Users/Li/Downloads/offer.csv' 
INTO TABLE offer 
FIELDS TERMINATED BY ',' 
LINES TERMINATED BY '\n' 
IGNORE 1 LINES; 

をにインポートするために使用したものだと、ここでテーブルを作成するためのコードです手動で取り組まなければならない。最初に注意しなければならないのは、mysqlは 'デフォルトのソート順'について何ら保証していないということです。これは、新鮮な表があるので、しかし、我々は、行は、彼らが中に挿入されたのと同じ順序で返されていることを確信することができ、次のクエリは308で何あなたが表示されますので:オフセット

SELECT * FROM offer LIMIT 307, 1 

注意しなければなら1が実際の行番号よりも小さい。これで適切な値で更新することができます(上のクエリで明らかになったIDを使用)

UPDATE offer set hotel_id = something where id = someid 

これを5回繰り返して実行します。

+0

ありがとう、これは – logicpro

+0

うまくいきました。あなたは新しいユーザーであるため、正しい場合は回答を受け入れることが慣例であることを指摘してください。将来、このページに掲載された人は、ソリューションがそれらのために機能することを知っています。我々はどちらもブラウニーポイントを得ます:) – e4c5

+0

はい、記載されています:) – logicpro