SELECT INTO OUTFILEの追記

このQ&Aのポイント
  • 日経225の株価を定期的にmySQLに記載する仕組みをつくりました。
  • mySQLのテーブルに書き込まれる株価について、トリガを発動し外部csvにも書き込みたいと考えています。
  • しかし、一度外部CSVファイルに書き込むと、追記ができずエラーが発生します。追記可能な方法はあるのでしょうか?
回答を見る
  • ベストアンサー

SELECT INTO OUTFILEの追記

日経225の株価を定期的にmySQLに記載する仕組みをつくりました。 この定期的にmySQLのテーブル(ni225)に書き込まれる株価について、 書きこまれるたびにトリガを発動し外部csv(225.csv)にも書き込みたいと考えております。 dataディレクトリを777にし、 トリガで下記のコマンドを実行することで225.csvに書き込むことが可能です。 SELECT * INTO OUTFILE '../../../home/test/public_html/data/225.csv' FROM ni225 しかしながら、一度225.csvに書き込むと、次の日経平均アップデートでのトリガ発動時には 追記出来ずエラーとなります。 外部CSVファイルに追記可能な方法は御座いませんでしょうか? 追記というコマンドがない場合、なにか妥当な方法がないものかご指導頂けましたら幸甚です。 宜しくお願い致します

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

質問者が選んだベストアンサー

  • ベストアンサー
  • mpro-gram
  • ベストアンサー率74% (170/228)
回答No.1

MySQL からの出力は新規のみで追記する機能はありません。 同名ファイルがあるとエラーになるから上書きも出来ないですね。 MySQLのテーブルに書き込みするときは、なんらかのプログラムを使ってますよね? そのときに、そのプログラムからcsv にも出力してしまえば、MySQLから出力させる必要はないのでは?

tajix14
質問者

お礼

有難うございます。 数日回答が来なかったので、ご指摘の方法で開発を始めました。 お忙しい中有難うございました。

関連するQ&A

  • PHPでMySQLのデータのインポート&SELECT結果のダウンロード

    こんにちは。いつもここにはお世話になっています。 ご質問が何点かあって申し訳ないのですが、簡単に作ろうとしているスクリプトを説明すると一日一回夜中にCSVかTEXT形式でデータがアップされます。それをMysqlの指定したテーブルにインポートします。その際前日のデータは全て削除します。作られたCSVファイルも削除したいんです。翌日にそのインポートされたデータを検索し必要に応じて検索されたデータをダウンロードできるようにしたいんです。ダウンロードするファイルはCSVでファイル名はテーブル名に検索した時の時間をつけた名前。これを全てPHPで行いたいんです・・・。 現在検索とSSHでログインしてのMysqlにインポートはできました。ダウンロードはまだ挑戦していないのですが、まずファイルを作ることとPHPでのデータのインポートができるのかわかりません。 質問なのですが、 1.分かりにくいのですが、上記のようなことはPHPで可能でしょうか? 2.データのインポートはPHPではどのようにしたらいいのでしょうか? 3.テーブル内のデータの削除はDELETEを使えば可能なのはわかりましたが、指定したフォルダ内のファイルを削除する方法はありますか? 4.SELECTで検索したデータが画面に表示されダウンロードできるようにファイルを作るのに $sql = "SELECT * FROM テーブル名 WHERE フィールド = \"条件\" "; $sql .= "INTO OUTFILE \"/home/パス/テキスト.CSV(or txt)\""; $res = mysql_query($sql); とスクリプトを記述しましたが出来ませんでした。 SShでmysqlにログインをして mysql> SELECT * FROM テーブル名 WHERE フィールド = '条件' -> INTO OUTFILE '/home/パス/テキスト名.txt'; とするとできたのですが、単純にこれをSELECT等と同じようにしたらダメなのでしょうか? 質問が多く申し訳ないのですが、ご教授をよろしくお願いします。

    • ベストアンサー
    • PHP
  • CSVファイルについて

    MYSQL5.0を使用しています。 MYSQLからCSVファイルを開いて、そこへデータを書き込みたいと思っているんですが、なかなかうまくゆきません。 MYSQLからCSVをオープンする、というコマンドみたいなのはあるんでしょうか?

    • ベストアンサー
    • MySQL
  • 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
  • mysqlのcsvファイル出力について

    今jspファイルでボタンを押すとサーバーにあるデータベースの結果をcsvファイルとして保存するファイルを作りました。 今、作業用のパソコンからテラタームを使い、リモート接続で作業をしています。 なので出力するcsvファイルをサーバーの方ではなく、作業用のパソコンに落としたいのですが、方法はないですかね? 今はjspのほうでSELECT * FROM テーブル名 INTO OUTFILE のコマンドをmysqlに送っています。 phpmyadminで接続してそこからcsvファイルを落とすと閲覧しているパソコンに落ちるようになってるのでそ それができたらなと思います。 何かいい方法はないでしょうか? よろしくお願いします。

  • Mysqlでmysql -u root -p -bがエラーになってしまう

    ついこないだ迄動いていたMysqlが動かなくなりました。唯、ODBCからはデータが見えるし、おかしくないのですがDOSから動かすとエラーになります。 1.net start Mysql   Mysqlが動きます 2.mysql -u root -p -b   Mysqlは内部コマンド、外部コマンド  操作可能なプログラム又はバッチファイルとして認識されていません。 と出てしまいます。  どなたか、ご教授下さるようお願い致します。

    • ベストアンサー
    • MySQL
  • MySQL の load data infile

    お世話になります。 MySQL のload data infile ... コマンドを使ってCSVファイルをテーブルに転送することをよくやっていますが、このコマンドには現在あるデータはそのままにして、新たにデータを追加するオプションなどはあるのでしょうか? 今までは空のテーブルにデータを転送していただけですが、既にあるデータに上書きすることなく、追加する方法があれば教えていただきたいと思います。 よろしくお願いいたします。

    • ベストアンサー
    • MySQL
  • MySQLでCSV出力したい

    MySQL初心者です。 テーブルから抽出したデータを CSVにてエクスポートしたいです。 SELECT * FROM tbl_employee INTO OUTFILE "/ttt.csv" FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY "\r\n"; これだとフィールド名がエクスポートされないという現象が起こります。 また、エクスポート先なのですが、 デスクトップとかにしたいのですが、 設定の仕方がよくわかりません。 ネットで調べたのですが、限界でした。 まだまだ初心者なもので よろしくお願いいたします

  • MySQLのデータをCSVに定期的に自動出力する方法について

    MySQLのデータをCSVに定期的に自動出力する方法について 初心者で本当に恐縮ですが助けて頂ければ幸いです。 MySQLのデータをCSVに出力したい。 かつ、例えば毎時0時に自動出力したい、と考えております。 使用しているレンタルサーバーはcronが使えません。 cronを使用してどうにかなるものなのかもよくわかりませんが、 当方の検索力不足のせいで調べてもヒントらしいヒントが見つかりません。 何か良い方法がありましたらご教授頂けませんでしょうか。

  • Perlでのファイル入出力、処理方法

    メモ帳で以下のようなプログラムを書きました。(file_1.plで保存しました) #!/usr/bin/perl $file="data.csv"; $cityfile="name.txt"; $outfile="data_out.csv"; open (IN, $file) or die "$!"; open (FILE, $file) or die "$!"; open (OUT, ">$outfile") or die "$!"; @city = <FILE>; ・ ・ ・ これをCygwinコマンド上で、 perl file_1.pl と入力し、Enterを押すと「No such file or directory at file_1.pl line 9.」と表示されます。 line9はopen (FILE, $file) or die "$!";という文です。 どこが間違えで、どのように修正すればよいのでしょうか。 よろしくお願いします。

  • mysqlで簡単に10000万件データを作る方法

    度々載せます。 下記で載せていた件は、何とか解決しました。 一つ教えていただきたいのですが、 INSERT文で10000件ぐらいのデータを簡単に作成する方法は ありませんか?? CSVファイル??みたなのを作って、 LOAD DATAコマンドでできそうな気がしますが、 サンプルとかありませんか?? 私は、windowsの環境でmysqlを使っております。 Linuxではないので、ちょっと困ってます。 お願いします。

    • ベストアンサー
    • MySQL