1
私はpythonanywhere上のmysqlデータベース上のテーブルにcsvファイルをアップロードしようとしていましたが、LOAD DATA LOCAL INFILEコマンドが機能しない理由を理解できません。私は再度コマンドを試してみましたが、ヘッダを削除するためにビットを脱いLOAD DATA LOCAL INFILEコマンドでデータがインポートされない
mysql> LOAD DATA LOCAL INFILE '/twenty_year_change_data.csv'
-> INTO TABLE twenty_year_change_data
-> FIELDS TERMINATED BY ','
-> ENCLOSED BY '"'
-> LINES TERMINATED BY '\n'
-> IGNORE 1 ROWS;
Query OK, 0 rows affected (0.01 sec)
Records: 0 Deleted: 0 Skipped: 0 Warnings: 0
:
警告を見てmysql> LOAD DATA LOCAL INFILE '/twenty_year_change_data.csv'
-> INTO TABLE twenty_year_change_data
-> FIELDS TERMINATED BY ','
-> ENCLOSED BY '"'
-> LINES TERMINATED BY '\n';
Query OK, 1 row affected, 2 warnings (0.01 sec)
Records: 1 Deleted: 0 Skipped: 0 Warnings: 2
:
mysql> show warnings;
+---------+------+-----------------------------------------------------+
| Level | Code | Message |
+---------+------+-----------------------------------------------------+
| Warning | 1265 | Data truncated for column 'pcode_district' at row 1 |
| Warning | 1265 | Data truncated for column 'percent_change' at row 1 |
+---------+------+-----------------------------------------------------+
2 rows in set (0.00 sec)
は、これは私のコマンドと結果でした
テーブルの外観は次のとおりです。
0データの形式を見るとmysql> select * from twenty_year_change_data;
+----------------+------+------+----------------+
| pcode_district | 1995 | 2015 | percent_change |
+----------------+------+------+----------------+
| pcode_ | 1995 | 2015 | 0 |
+----------------+------+------+----------------+
1 row in set (0.00 sec)
:ヘッダがそれらを含んでいないので、私はそれがアンダースコアに問題があるかもしれないと推測
mysql> describe twenty_year_change_data
-> ;
+----------------+------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------------+------------+------+-----+---------+-------+
| pcode_district | varchar(6) | NO | | NULL | |
| 1995 | float | YES | | NULL | |
| 2015 | float | YES | | NULL | |
| percent_change | float | YES | | NULL | |
+----------------+------------+------+-----+---------+-------+
4 rows in set (0.00 sec)
ので、私はcsvファイルを微調整し、それはまだ後に停止します最初のセルだけをインポートします。
問題を解決するにはどうしたらよいですか?また、mysqlを使用する際のフォーマットについて知っておく必要がありますか?
UPDATE:ここでは、CSVのトップだ
pcode_district,1995,2015,percent_change
AL1 1,79700,427500,436.3864492
AL1 2,78125,384250,391.84
AL1 3,66500,306500,360.9022556
AL1 4,98000,575000,486.7346939
AL1 5,72000,365250,407.2916667
なぜ最初にテーブルにヘッダー行をインポートしようとしていますか?あなたの正確な問題について私は本当にはっきりしていません。あなたがリストしている警告は、ファイルから列ヘッダーをインポートしようとしているからです - "pcode_"はヘッダ "pcode_district"の最初の6文字です。これはあなたのテーブルが保持するものですその列( 'VARCHAR(6)')。実際の*データ*をインポートする際に問題がある場合は、データを投稿するのに役立ちます。 csvファイルの最初の数行、例えば、 –
'twenty_year_change_data.csv'の2行のサンプル行を投稿できますか? –
ああ。私は、最初のコマンドがヘッダー行を無視したと考えました。フォローアップコマンドは、何かをインポートするかどうかを知るための初心者のアプローチでした。申し訳ありませんが、私はmysqlの新機能です。私はデータを追加します... – elksie5000