一時テーブルでの作業

このQ&Aのポイント
  • 一時テーブルの維持方法とMysql_pconnect()関数について
  • CSVデータをデータベースにインポートする際のエラーリスト修正方法を考える
  • 一時テーブルの接続切断方法について
回答を見る
  • ベストアンサー

一時テーブルでの作業

今、あるシステムを構築中なのですがCSVデータをデータベースにインポートする際にチェック後エラーとなったものをエラーリストとしてCSVに吐き出しています。このエラーリストを取込、データ修正作業を行うのですが、その際一時テーブルを作成してエラーリストをインポートしたうえで修正作業をしたいと思っています。 ただ、レコード数が多いので複数ページにまたがって修正するようになるのですが、一時テーブルはMySQLとの接続が切れると消えてしまうらしいのです。 この場合、ページを表示した時点でスクリプトは一度終了しているので、テーブルが消えるものだと思っています。 これを指定するまで一時テーブルを維持する方法はあるのでしょうか?mysql_pconnect()という関数なら永続的にできると書いているのですが、これでしょうか? この場合、切断したい場合はどうすればいいのでしょうか? 言語はPHPで構築しています。 説明が分かりにくいでしょうが、宜しくお願いします。

  • S202
  • お礼率84% (142/169)
  • MySQL
  • 回答数1
  • ありがとう数1

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

  • ベストアンサー
回答No.1

一時テーブルに、拘る必要はあるのでしょうか? 通常のテーブルとして定義し、リセットする場合に、 「truncate table 表名」で空にする方法も考えられます。 「drop table if exists 表名」+「create table 表名~」を使えば、テーブルが存在する場合のみ削除できます。

S202
質問者

お礼

ありがとうございます。 やはりテーブルを作成したほうがよさそうですね。

関連するQ&A

  • MySQL接続について

    今、あるシステムを構築中なのですがCSVデータをデータベースにインポートする際にチェック後エラーとなったものをエラーリストとしてCSVに吐き出しています。このエラーリストを取込、データ修正作業を行うのですが、その際一時テーブルを作成してエラーリストをインポートしたうえで修正作業をしたいと思っています。 ただ、レコード数が多いので複数ページにまたがって修正するようになるのですが、一時テーブルはMySQLとの接続が切れると消えてしまうらしいのです。 この場合、ページを表示した時点でスクリプトは一度終了しているので、テーブルが消えるものだと思っています。 これを指定するまで一時テーブルを維持する方法はあるのでしょうか?mysql_pconnect()という関数なら永続的にできると書いているのですが、これでしょうか? この場合、切断したい場合はどうすればいいのでしょうか? 言語はPHPで構築しています。 説明が分かりにくいでしょうが、宜しくお願いします。

    • 締切済み
    • PHP
  • insertを用いてテーブルにレコードを追加することができるのにもかか

    insertを用いてテーブルにレコードを追加することができるのにもかかわらず、load data infile を用いるとerror1366と表示されてしまいます。解決方法を教えてください。 Windows7 mysqlは最新版を使っています。 インストールしたそのままの状態だと、insertを用いて日本語を挿入しようとするとerror 1366と出てしまってましたが、my.iniを書き換えることによってinsert table1 values (1,'ああ');といった操作でエラーが出ることはなくなりました。 しかしcsvファイルをload data infileを用いてインポートしようとすると、またerror 1366が出てしまいました。 インポートしようとしたファイルには日本語が書かれています。 英字だけのファイルを同様にインポートすると、エラーは出ませんでした。 <table1> id int(15) name varchar(255) 1,a 2,b 3,asdf … はインポート可能 。また insert table1 values (1,'あ'); も正常に動作。 1,あ 2,い … をインポートするとエラー。 これができないと先に進めません・・・ ご教授お願いします。

  • MySQLにCSVファイルを入れる方法

    MySQLでデータベースを構築しています。CSVファイルにデータを構築していますがMySQLにインポートする方法が解りません。どうかおしえていただけませんでしょうか?

  • インポートした時に[ _seq ]というテーブルが自動作成される

    お世話になっております。 MySQLのPHPMyAdminにてSQLをインポートすると、 まれに[ _seq ]というテーブルが自動作成される事があります。 構成として、 sequence int(11) Not Null auto_increment の1フィールドのみのテーブルです。 何故、このようなテーブルが発生するのでしょうか? また、インポートデータに問題はないのでしょうか? (インポート時にエラーは表示されません) どうぞ宜しくお願い致します。

  • テーブルにcsvファイルをインポートできない

    かなり困っています。REDHAT LINUXでpostgresのテーブルにpsqlからのCOPYコマンドでcsvファイルのデータをインポートしようとしているのですが、文字数オーバーのエラーがでてしまいます。テーブルは2列で1つ目の列はCHAR(10)で2列目はINT4型です。csvファイルの内容はとりあえず1行だけ入れていて「"1234567890","1234"」を入れています。コマンドはpsqlで「COPY テーブル FROM 'ファイルのパス' USING DELIMITER ","」で行いました。エラーはおそらくインポートしたデータがおかしくなって変な桁数になっているのですが、どういうふうにおかしくなっているのかがよくわからないので対策できません。

  • SQLiteのテーブルデータ移行について

    SQLiteについて質問します。 よろしくお願いします。 [環境] WindowsXP pro sp3 sqlite 3.6.9 [やりたいこと] SQLiteのテーブルのデータを、別のSQLiteのデータベースに移行したい。 ただし、移行の操作はすべてコマンドプロンプト上で実行したい。 [現状] 移行したいテーブルのデータをCSV形式でアウトプット出来ています。 [困っていること] 1.移行したいテーブルのデータに改行が入っていると、インポートに失敗してしまう。 >うまくインポートできる例 1,2,"あいうえお",5,6,2011/10/21 >インポートに失敗する例 1,2,"あいう えお",5,6,2011/10/21 2.CSVの文字列データの先頭と最後尾にある「"」も一緒にインポートされてしまう。 1,2,"あいうえお",5,6,2011/10/21 このデータをインポートした場合、 1|2|あいうえお|5|6|2011/10/21 この様にインポートしたいが、 1|2|"あいうえお"|5|6|2011/10/21 この様にインポートされてしまう。

  • Access インポート時のエラー処理

    お世話になります。 Access2010 csvファイルをインポートするツールを作成しました。 フォーム上に設置した「インポート」ボタンを押すと、所定のcsvファイル をインポートします。 ※事前にtempテーブルを作成しておき、そこにインポートします。 DoCmd.TransferText acImportDelim, , temp, 所定のパス, True <質問> インポート時に、稀にデータ変換エラーとなります。 データ変換エラーに限らず、エラーが発生した場合はエラーメッセージを 表示し、処理を中断したいのですが、どのようにすればよいのでしょうか。 ※データ変換エラーの場合、特にエラーメッセージも表示されず、普通に  処理が進んでしまうので、エラーが出ていたことすら気づきません。 インポート後、作成されたエラーテーブルの有無チェックすればいいかと 思ったのですが、それだとどのような内容のエラーなのか、そのエラー テーブルを開いてみないと分かりません。 ※当該ツールの使用者はAccess Runtimeを使っているので、エラーテーブル  の中身を確認することは出来ません。 エラーコードを拾ってそれに該当するエラーメッセージを表示させることに なるかと思うのですが、その拾い方やエラーコードが分からずにいます。 ご教示の程、宜しくお願い致します。

  • テーブルデータのインポートについて

    バージョンはAccess2003です。 テーブルAとテーブルBがあります。 CSVからデータをインポートし、全データがテキスト型で保存されています。 テーブルBには最終的にデータを保存したいフィールドプロパティが定義されています。 VBを使ってテーブルAからテーブルBにインポートしたいと思っています。 テーブルAのデータをテーブルBの定義に合うように加工するにはどうすればいいのでしょうか? アドバイスよろしくお願いします。

  • "文字列"? > CSVデータをMySQLにインポート時テキストデータのフォーマット

    CSVデータをMySQLにインポートする時に、データの中にテキストデータ(文字列)があるとします。 データを正しくインポートする為に、文字列をダブルクォーテーションやシングルクォーテーションで囲む必要はありますでしょうか。 記憶は定かではありませんが、「PostgreSQLの場合、文字列をクォーテーションで囲むとエラーになる。MySQLの場合は逆で、文字列をクォーテーションで囲まないとエラーになる。」みたいな話しを聞いたことがあるような気がします。 どなたか、教えていただければ幸いです。 どうぞよろしくお願いいたします。

    • ベストアンサー
    • MySQL
  • CSVファイルインポート時の制限について

    AccessVBAでcsvファイルをインポートするマクロを作っています。 現在、インポート定義を利用して、データ型を指定したインポートができているのですが、1点だけ問題があり、質問します。 インポートするcsvファイルのA列にIDが入力されています。 そのA列の末尾に、ID(数値型)ではない「<b>32</b><br />」という値が入っています。 Accessのテーブルでは、このIDのフィールドは数値型で管理している為、この1レコードだけ エラーとなり、エラーテーブルが作られ、また、インポート先のテーブルには空のレコードができてしまいます。 この末尾の行については、IDではない「<b>32</b><br />」以外は何もデータが入っていない為、 インポートする必要がありません。 もし可能であれば、csvファイルのA列(Accessテーブルでは数値型のIDというフィールド)が数値ではない場合、 その行のインポートをスキップするような処理がVBAで作成できるとよいのですが、可能でしたら教えてください。