- ベストアンサー
CSVファイルについて
MYSQL5.0を使用しています。 MYSQLからCSVファイルを開いて、そこへデータを書き込みたいと思っているんですが、なかなかうまくゆきません。 MYSQLからCSVをオープンする、というコマンドみたいなのはあるんでしょうか?
- MySQL
- 回答数1
- ありがとう数0
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
ストレージエンジンにcsvを指定することもできるみたいですが データの整合性のチェックなども必要でしょうから、 mysql単体でやることを考えるより、phpなどをミドルウェアとして 使用するとよいでしょう。 http://dev.mysql.com/doc/refman/5.1/ja/csv-storage-engine.html
関連するQ&A
- CSVファイルのインポートについて
宜しくお願いします。 CSVファイルをインポートしようとして、四苦八苦しています。item.csvというファイルをitemという名前のテーブルにインポートしようとしています。 load data local infile "item.csv" into table item fields terminated by ','; とコマンドを入力すると、 The used command is not allowed with this MySQL version というエラーが返されます。そこで、 load data infile "item.csv" into table item fields terminated by ','; と入力すると、 Access denied for user: '****@localhost' (Using password: YES) というエラーが返されます。 csvファイルの置き場所も解らないので、同じサーバの/public_html/test/php/csv/item.csvという位置と、/public_htmlよりもう一階層上のフォルダにitem.csvというファイルをアップしてあります。 相対パスやサーバがどの程度の階層まで検索してくれるのか解らないので、絶対パスでも指定してみましたが、全く同じエラーが返されてきました。 エラーの内容を翻訳してみたところ、 The used command is not allowed with this MySQL version 「使用されたコマンドは、このMySQL版で許されない」 Access denied for user: '****@localhost' (Using password: YES) 「ユーザー:『****@localhost』(パスワード:YESを使うこと)のために許されないアクセス」 という意味になりました。正直、どうすればいいのかさっぱりわかりません。この状況の打開策をご教授頂ければ助かります。何卒、宜しくお願い致します。尚、MySQLのバージョンはレンタルサーバの情報によると、「3.23.××以降」となっています。
- ベストアンサー
- MySQL
- 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
- CSVファイル「Test.csv」(文字コードWindows-31J(
CSVファイル「Test.csv」(文字コードWindows-31J(CP932))を、 CentOS(Linux)上の/var/lib/mysqlディレクトリ上(MySQLデフォルトのデータディレクトリ)へ、 アップロードしてから、 以下のJavaプログラム(エラー処理内容だけは省略していますが・・・) ↓ final Runtime rt = Runtime.getRuntime(); final Process pr = rt.exec("chown mysql:mysql" + " " + "/var/lib/mysql/Test.csv"); try { pr.waitFor(); final int intRet = pr.exitValue(); if (intRet != 0) { return; } } catch (final Exception ex2) { return; } を実行して、 アップロード後の「Test.csv」ファイルの「所有者」、および「グループ」を、 元々の「root」から、「mysql」に変更させて、 その後、 MySQLコマンドの「LOAD DATA INFILE」を実行すると、 なぜか、 以下のエラーが発生します。 ↓ java.sql.SQLException: Access denied for user 'SYSASA'@'localhost' (using password: YES) なお、別のやり方として以下のテストも試してみました。 ↓ 上記のJavaプログラムを実行せずに、 アップロード後のファイルを直接、 CentOS上から手作業(プロパティ)で、 アップロード後の「Test.csv」ファイルの「所有者」、および「グループ」を、 元々の「root」から、「mysql」に変更させてから、 その後、 MySQLコマンドの「LOAD DATA INFILE」を実行すると、 問題無く、インポート出来ています。 そこで、 ご質問内容なのですが、 Javaプログラムを利用しているか、していないか だけの違いで、 実施しているのですが、 なぜか、上記致しましたJavaプログラムで、 アップロード後の「Test.csv」ファイルの「所有者」、および「グループ」を、 元々の「root」から、「mysql」に変更させてから、 MySQLコマンドの「LOAD DATA INFILE」を実行すると、 上記のエラーになります。 何が問題なのか? もしお気づきの点などございましたら、 ぜひ教えてください。 お世話になります。 以上、宜しくお願い致します。
- ベストアンサー
- Java
- CSVファイルの処理方法
PerlでCSVファイルの処理をしようとしています。 CSVファイル(ここではdata1.csvとします)の中身は、A列とB列に数値が1000行程表記されています。 -5,1 -4,2 -3,3 ・ ・ ・ 作成したPerlのファイル(ここではtest1.plとします)下のようにし、 while ($_=<stdin>){ print"$_\n"; } Cygwinコマンド上で、 $ perl test1.pl <data1.csv と入力すると、CSVファイル(data1.csv)の数値がCygwinコマンド上に全て表記されます。 前置きが長かったのですが、CSVファイル(data1.csv)の3行目までの数値だけをCygwinコマンド上に表記したい場合、どのようにプログラムすればよいのですか。 お願いします。
- ベストアンサー
- Perl
- 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にCSVファイルを入れる方法
MySQLでデータベースを構築しています。CSVファイルにデータを構築していますがMySQLにインポートする方法が解りません。どうかおしえていただけませんでしょうか?
- 締切済み
- その他(データベース)
- ExcelVBAでCSVファイル簡単に取り込む
ExcelVBAでCSVファイル簡単に取り込むコードを教えてください。 OpenコマンドでCSVファイルを開いて、 自分でカンマ毎に切り分けてセルにセットするやり方はできるのですが、 もっと簡単な方法はありませんか? イメージとしてはExcelの「外部データのインポート」機能が近いのですが この機能を使って取り込むと、何やら余計な情報がくっついてしまうようです。 あくまでテキスト情報だけをセルに貼り付けたいのです。 (ちなみに「外部データのインポート」で都合が悪い点は Ctrl+*で65536行目まで選択されてしまうところです。 何行目までデータがあるか?をCtrl+*で調べているためです。 ・・・Range("A65536").End(xlUp)で調べればいいのかもしれませんが・・・) 何か良いやり方をご存知の方はいらっしゃいませんか?
- ベストアンサー
- Visual Basic
- CSVファイル読み込み
VC++でCSVファイルの読み込みを作っています。 ファイル名「abc.csv」というファイルがあり CSVファイルの内容は、 "id","food" "1","バナナ" "2","オレンジ" となっています。 ソース上はファイルをオープンして 読み込むところまでは分かりましたが、 CSVファイルのコンマの分解とその後の処理が分かりません。読み込んだ後、コンボボックスで、CSVファイルのname一覧を表示する予定でいます。 例では、バナナ オレンジ とコンボボックスで表示して選択できるようにします。 今のソースは以下の通りです。 CStdioFile file; CString name; int flag; if(!file.Open("abc.csv",CFile::modeRead)){ AfxMessageBox("File Open failed"); } while(flag){ if(file.ReadString(name)==FALSE) //nameにデータ読み込み break; //CSVコンマを分解 //テキスファイルで読み込み?表示? } file.Close(); //file close 初心者なので間違いだらけかもしれませんが よろしくお願いしますm(__)m
- ベストアンサー
- C・C++・C#
- VBAでCSVファイルが使用中かどうかの確認
お世話になっております。 Excel VBA についてご質問します。 今、VBAでCSVファイルを作成してデータ管理を行うソフトを作成しております。 このソフトは、共有をかけて複数の人で使用するため同じCSVファイルに同時にアクセスする可能性があります。そのため、CSVファイルに混同したデータが書き込まれてしまう恐れがあります。 そこで、CSVファイルがオープン中または、アクセス中が認識できる命令等はないでしょうか? よろしくお願いします。
- ベストアンサー
- Visual Basic
- CSVデータの同じファイルに上書きするには。
CSV形式でデータdata.csvが書いてあります。プログラムを実行して、そのファイルの$data[4]の値が5という数字だった場合は、そこのセルだけ"解除"という文字に置き換えて(ほかに入ってる値ははそのまま)data.csvに上書きしたいのですが、どうもうまくいきません。したのように記述したのですが、どこが間違っているのかがわかりません。。どなたか教えてください。よろしくおねがいします。 #!/usr/bin/perl $file='data.csv'; open(FILE, "$file"); while(<FILE>){ @data = split(/,/, $_); } close(FILE); if($data[4] eq "5"){$data[4] = "解除";} open(OUT, ">$file"); print OUT @data; close(OUT);
- 締切済み
- Perl