• 締切済み

mysqlへcsvファイルの読み込み

mysqlについて質問させて下さい。 エクセルをcsvファイルに変換したものを、データベースに読む込んだのですが、下記のエラーが出ます。 for column 'id' at row 1ect integer value: 'id,number 整数が間違っていると言うことかと思い、エクセルのほうはデータを全部数値にし、mysqlのほうは「int」にしました。 これでも同じエラーが出てしますのですが、原因がお解かりの方、教えて頂けると助かります。 sql文です。 LOAD DATA INFILE "***.csv" INTO TABLE dbname.tablename; カラムはidとnumberのみです。 よろしくお願いします。

  • MySQL
  • 回答数1
  • ありがとう数4

みんなの回答

  • masa6272
  • ベストアンサー率66% (93/140)
回答No.1

フィールドの区切りは、デフォルトではタブです。 tsvなら・・・ 後、行の終わりもWindowsだったら\r\nの場合も。 必要に応じて、指定する必要があります。 5.1のマニュアルは http://dev.mysql.com/doc/refman/5.1/ja/load-data.html をご覧ください。 各バージョンごとにマニュアルはあると思います。

hanamichi3
質問者

お礼

masa6272さま アドバイスありがとうございます。 また返答が遅れましてすみません。 先ほど、下記のsql文を追加して試したところ、問題なく読み込むことが出来ました。 ありがとうございました! FIELDS TERMINATED BY ',' LINES STARTING BY 'xxx';

関連するQ&A

  • csvファイルを使ってMySQLのテーブルを更新し

    約2万件ある15個のカラムで構成されるMySQLのテーブルがあります。 このテーブルをcsvファイルを使って更新しようと考えています。 csvファイルにはレコードIDとあるカラムの変更する値の2つのセルで 構成されています。 行数は毎回異なりますが、だいたい300行前後です。 csvファイルの具体的イメージはこんな感じです。 id order ============ 2,  200 4,  10 7,  460 11,  35 MySQLのテーブルの方にも「id」と「order」というカラムが存在します。 java や PHP を使ってやる方法はわかるんですが、プログラムを作成しないで SQLだけで行いたいと考えています。 LOAD DATA LOCAL INFILE などがあることがわかったのですが、レコードを REPLACE  するのではなく、一部のカラムをアップデートしたい、ということです。 どなたか、教えて頂けると助かります。 よろしくお願い致します。

  • CSVファイルをインポートするときにエラーが出る。

    MySQLにCSVファイルをインポートしたいのですが、 ' for column 'hyoko' at row 14integer value: ' というメッセージが出て、インポートできません。 これはどういう意味のメッセージ(エラー?)なのでしょうか?

    • ベストアンサー
    • MySQL
  • MySQLで連続csvファイルを読み込むために

    MySQL 5.6を最近使い始めました。 大量のcsvファイルで保存されているデータを読み込んで、データベースとして扱いたいのですが、どうすれば良いでしょうか? ファイル名は、 data1_1.csv data1_2.csv data1_3.csv data2_1.csv data2_2.csv といった形で、規則正しく並んでいるのですが、大量にあるため、ループを使って自動化したいと思っております。そのために、LOAD DATA INFILE ファイル名 を使って、このファイル名を順次変えて繰り返す方法がわかりません。 まず、ファイル名に変数が使えるのかと思って @file="data1_1.csv"としてファイル名を置き換えてみたのですが、エラーでした。これでは、この1_1を順次動かす以前に変数が無理なのかも?と思っています。 何かやり方があるようでしたら、どなたかお教えください。 どうぞよろしくお願いいたします。

    • ベストアンサー
    • MySQL
  • MYSQLでSQLSERVERのリンクサーバーのようなことは可能ですか

    MYSQLでSQLSERVERのリンクサーバーのようなことは可能ですか? AとBのMYSQLサーバーがあり、AのDB接続からBのDBを参照したいのですが、方法はありますでしょうか? 一つのSQL文にて下記のようなことを実現したいです。 SELECT * FROM servernamea.dbname.tablename LEFT JOIN servernameb.dbname.tablename ON servernamea.dbname.tablename.id = servernameb.dbname.tablename.id どなたかよろしくお願いします。

    • ベストアンサー
    • MySQL
  • MySQLでのcsvファイル読み込み

    必要に駆られたのでMySQLについて勉強しているのですが、 ファイル読み込みで問題が起こり、詰まってしまっています。 MySQL上で自作したsampledb内にテーブルprefectureを作成し、 そのテーブル内にPrefecture.csvファイル(文字コードshiftJIS)からデータを入力しようと しているのですが、最初の一件しかテーブルに格納されず、他のデータが入らないのです。 以下に入力したクエリ文を掲載します。 create database sampledb default character set sjis create table Prefecture(PREF_CD INT(3),PREF_NAME VARCHAR(10),PRIMARY KEY(PREF_CD)) LOAD DATA INFILE "Prefecture.csv" -> INTO TABLE Prefecture FIELDS TERMINATED BY"," -> LINES TERMINATED BY"\r\n"; Query OK, 1 row affected, 1 warning (0.08 sec) Records: 1 Deleted: 0 Skipped: 0 Warnings: 1 select * from prefecture +---------+-----------+ | PREF_CD | PREF_NAME | +---------+-----------+ |       1 | 北海道 2 | +---------+-----------+ 1 row in set (0.00 sec) Prefecture.csvについてはこちらのサイト仕様上添付できませんでしたが、 1,北海道 2,青森県 3,岩手県 . . .(以下省略) のように、47都道府県の番号と地名を並べたものです。 独力では解決法を見出せません。 どうかご助力お願いします。

    • ベストアンサー
    • MySQL
  • MYSQLからCSVへの書き込み方法

    MYSQLからCSVへの書き込み方法で質問があります。 下記のコードを記載しましたが DBのデータ件数分の改行しか出力されませんでした。 ブラウザ上でecho動作させた際には、 echo "<p>CSVファイルにセットされるデータ:".$string; でしっかりデータが設定されていました 何が悪いですか? ////////////////////////////////////////////////////////////////// // DBからCSVファイル書き込み(全件新規) // $file_name:csvファイル名 ////////////////////////////////////////////////////////////////// function DB_csvSet($file_name, $dbhost=DBHOST, $dbuser=DBUSER, $dbpass=DBPASS, $dbname=DBNAME) { print "DB_csvSet start"; // MySQL 接続 if (!($cn = mysql_connect($dbhost, $dbuser, $dbpass))) { die("DB_csvSet Error: mysql_connect"); } //MySQLのクライアントの文字コードをsjisに設定 mysql_query("SET NAMES sjis") or die("can not SET NAMES sjis"); // MySQL DB 選択 if (!(mysql_select_db($dbname))) { die("DB_csvSet Error: mysql_select_db"); } // MySQL 問い合わせ $sql = sprintf("select * from %s", TABLE_NAME); if (!($rs = mysql_query($sql))) { die("DB_csvSet Error: mysql_query"); } // ファイルを新規モードで開く $file = fopen($file_name, "w") or die("OPENエラー $file_name"); // ファイルをロックする flock($file, LOCK_EX); // MySQL レコード参照 while ($item = mysql_fetch_array($rs)) { printf("id=%s ", $item[ITEM_ID]); printf("name=%s ", $item[ITEM_NAME]); printf("point=%s<BR> ", $item[ITEM_POINT]); // 3つの変数から配列を作成する $array = compact($item[ITEM_ID], $item[ITEM_NAME], $item[ITEM_POINT]); // $array = compact("id","name","point"); // 配列のデータをカンマで区切って結合する $string = implode(",", $array); // 結合された文字列を表示する echo "<p>CSVファイルにセットされるデータ:".$string; // データを書き込む fputs($file, $string."\n"); } // ロックを解除する flock($file, LOCK_UN); // ファイルを閉じる fclose($file); // MySQL 切断 mysql_close($cn); // 正常終了 print "正常終了"; }

    • 締切済み
    • PHP
  • CSVファイルをMYSQLにインポート

    先日からMYSQL+PHPの勉強をはじめました。 データベース構築の際、以前作成したCSVファイルをMYSQLのテーブルとして 利用したいと考えております。 そこで、MYSQLコマンドより、 LOAD DATA LOCAL INFILE 'ファイル名.csv' INTO TABLE テーブル名 FIELDS TERMINATED BY ',' LINES TERMINATED BY '\r\n'; Query OK, 0 rows affected (0.04 sec) Records: 102 Deleted: 0 Skipped: 102 Warnings: 0 とCSVファイル自体が悪いのかSQL文に問題がるのかインポートがうまくいきません。。 ちなみにCSVは  0,2011/6/2 0:00,80.94,81.32,80.55,80.92 0,2011/5/25 0:00,81.94,82.17,81.8,81.95 0,2011/5/23 0:00,81.77,82.04,81.32,81.99 環境はphpdevで一括でインストールした phpadmin: バージョン2.3.2 MYSQL: MySQL4 apache: 1.3.27 初心者で基本的な質問かもしれないですがどうかご教授お願いします。

    • ベストアンサー
    • MySQL
  • mysqlのデータインポートについて

    こんばんは。 エクセルで作ったcsvファイルをmysqlにインポートしたいのですが、 エラーが出て出来ずに困っています。 エラーの内容は、Row 1 doesn't contain data for all columsと出ています。 データが無いという事なのですが、csvファイルにはデータがあります。 mysqlのフィールドの属性の問題でしょうか? 考えられる原因など教えて頂けますと大変助かります。 宜しくお願い致します。

    • ベストアンサー
    • MySQL
  • MySQLのCSVファイルの利用について

    MySQLについて質問させていただきます。 現在PC3台ほどで同じネットワーク内にてエクセルファイル共有にて商品在庫管理をしています。 大体15000レコードの30カラムほどのデータが数個あります。 今後別のネットワークからのアクセスやデータ量の増大も考え、 ちゃんとしたデータベースで管理したいなぁと考え始めました。 そこで質問なのですが仮にMySQLを利用するとして、 例えば毎日その在庫データをCSVファイルとしてローカルにダウンロードして各PCにて作業、 作業終了後丸々そのCSVをまたアップロードして変更箇所を更新。 1.回線速度にもよるとは思うのですが、一般的に この程度のデータをダウンロード、アップロードするのに 時間は結構かかってしまうものなのでしょうか? 2.また各PCにて作業、そのデータを各アップロードすると、 各PCにて変更した箇所のみうまい具合に反映することは可能でしょうか? 3.そもそもこのような使い方はありな感じでしょうか?? 4.このような使い方で他にオススメなデータベースなどございますでしょうか?? ちなみにそのデータを使用しての検索、更新作業などがかなり多く、 またデータを利用した様々なマクロを組んでいる為、 できればエクセルを使用したローカルでの作業がかなり望ましい状況です。 ちなみにデーターベースはまったくの素人です。 いけそうであればMySQLを勉強してみようかと思っています。 どなたかアドバイスいただければ嬉しいです。

    • ベストアンサー
    • MySQL
  • mysqlでCSVインポートでトランザクション管理出来る

    只今、mysqlを使用して開発しております。 行き詰まっておりまして 大変申し訳ありませんが、ご教授の程、よろしくお願いいたします。 要件は以下になります。 ・CSVファイルデータをインポートする。 ・CSVファイルは複数なので、全ての処理が終わった段階でコミット・もしくはロールバックする。 (トランザクション管理が出来ればよいです。) ※LOAD DATA INFILEでトランザクション管理しようとしたのですが LAODのトランザクション管理は5.1系じゃないと出来ないようですので、 出来ませんでした。 mysqlのバージョン :5.0.24

    • ベストアンサー
    • MySQL