• ベストアンサー

create temporary tableについて

MYSQL5.0を利用して、PHPから以下の作業をしています。 create temporary table tempで作成された一時的なテーブル(temp)は削除しなくても問題ないのでしょうか? もし削除する必要がある場合は、drop temp で大丈夫でしょうか?

  • iiw2
  • お礼率70% (22/31)
  • MySQL
  • 回答数2
  • ありがとう数3

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

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

temporary tableは、接続ごとに作られます。 したがって、接続が別なら、お互いに見えません。 もちろん、同じ名前でもかまいません。 接続が閉じられたら、自動的に消えます。 プログラムが終了すれば、接続も消えますので、何もしないでかまいません。

iiw2
質問者

お礼

全然知りませんでした。 どうもありがとうございました。

その他の回答 (1)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

一連の流れで同じ名前のテンポラリをつけるときがあるかもしれません。 そうすると競合してエラーになりますので、基本的には削除処理は あった方がよいですね PHPなどから呼び出して使う場合は、往々にして自動で消えてくれる ものと期待できますが

iiw2
質問者

お礼

どうもありがとうございました。

関連するQ&A

  • CREATE TEMPORARY TABLEを複数回使用できない?

    phpとMySql(4.0.26)でプログラムを作成しているのですが、 CREATE TEMPORARY TABLEでテンポラリーテーブルを3つ作成して、 データの抽出をしようとしています。 phpMyAdminでは動くSQLが、PHP内に書くと動かなくても困っています。 原因を特定するためにSQLを少しずつ削除して確認していたところ、CREATE TEMPORARY TABLEが一つの場合はエラーが出ませんが、違う名前で別のテーブルから生成するもう一つのCREATE TEMPORARY TABLEを書くとエラーが起きてしまいます。 ちなみに、そのSQLを同じサーバに動作させているphpMyAdminのSQL画面にコピペすると、正常に動作します。 何が悪いのか全く検討が付きません。 どうぞよろしくお願いいたします。

    • ベストアンサー
    • MySQL
  • 3.23.59でのテンポラリテーブルの削除、補完機能について

    お世話になります。 server version: 3.23.59-nightly-20050301 上記バージョンのMySQL使ってシェルのコマンドプロンプトから mysql>CREATE TEMPORARY TABLE `test` (`name` VARCHAR( 255 ) NOT NULL); とテンポラリテーブルを作って mysql>DROP TEMPORARY TABLE test; そのテーブルを削除しようとすると ERROR 1064: syntax error near 'TEMPORARY TABLE test' at line 1 とエラーがでます。 これは仕様なのでしょうか? しかたがないのでいったん接続を閉じてテンポラリテーブルを消してますが server version: 4.0.18 で同じことを行うと正常に削除できます。 また、 server version: 3.23.59-nightly-20050301 だとselectと入力しようとして mysql>sele(タブキー) とやると補完されますが server version: 4.0.18以上だと だと補完されません。(フィールド名は補完できました) なにか設定などが必要なのでしょうか? よろしくお願いします。

  • テーブルが存在していたらDROPしてからCREATEするには?

    作成しようとするテーブルが既に存在している場合 一度DROP TABLEを行いたくて、以下のSQLを作成したのですが 削除が実行されません。 そもそものやり方自体が間違っているのでしょうか? 実行後のメッセージは テーブルが存在しなかった場合→コマンドは正常に完了しました。 テーブルが存在した場合→データベースにオブジェクト名 'SLIP_ITEMXX' が既に存在します。 と、表示されます。 --テーブルが存在した場合削除する ※ストアド使用 CREATE PROCEDURE SP_SLIP_ITEMXX AS DECLARE @TableName varchar DECLARE @Sql varchar set @TableName = 'SLIP_ITEMXX' SET @Sql = 'if exists (select * from dbo.sysobjects where id = object_id(N' + @TableName + ') ' + 'DROP TABLE ' + @TableName EXEC(@Sql) GO --テーブル生成 CREATE TABLE SLIP_ITEMXX( [slip_no] [int] NOT NULL ) GO --ストアド削除 DROP PROCEDURE SP_SLIP_ITEMXX GO

  • JDBCでテンポラリテーブルを扱う

    JDBCを使って、テンポラリテーブル(DBはMySQL)を作成したのですが、CREATE文を発行したクラス内では、INSERT,SELECTできるのですが、別クラス(別画面から別業務クラス)で、テンポラリテーブルにアクセスしようとすると、 テーブル名 doesn't exist というエラーが出てアクセスできません。 どこに原因があると考えられるでしょうか?

    • ベストアンサー
    • Java
  • drop tableで削除されず空になるだけ

    お世話になります。 現在mysql 4.1.17を使用してテーブルが2000ほどあります 下記のクエリーをphpからループで実行し不要になったテーブルを500ほど削除しました。 @mysql_query("drop table table_$number"); 一旦は削除されたように見えるのですが、あらためて確認をするとテーブルの内容が空になっただけで実際には削除されていませんでした。 権限の問題か考えたのですが一つだけですと削除できます。 どなたか原因を思いつく方はおられないでしょうか。 よろしくお願い致します。

  • 巨大テーブルからインデックスを複数削除する場合について

    巨大テーブルのINDEXを複数削除したいのですが、 MySQLでインデックスを削除すると、 テンプテーブルを作成してしまうので、 テンプテーブルが作られるのを1度で済ませたいのですが、 DROP INDEX構文で、複数のINDEXを指定する事は無理でしょうか?

    • ベストアンサー
    • MySQL
  • access vbaにてテンポラリーテーブルが作りたいです。

    教えてください。 フォームで年月日を入力させ ボタンを押すとテンポラリーのテーブルが出来る(そのあとでその一時テーブルを使ってselect等がしたい)ような仕組みを作りたいと思っています。 ##テーブル名 でいけるかとおもったのですが、 ##テーブル名という実際のテーブルができてしまいました。 記述は下記の通りです。 mySQL = "SELECT テーブルA.* INTO [##table] from テーブルA where 年月 = " & n1 & " " です。 ##テーブル部分を一時テーブルにしたいのですが・・・ どうしたらよいでしょうか? どうぞよろしくお願いします。

  • cakephpでテンポラリテーブル

    お世話になります。ご助力頂ければ幸いで御座います。 ---------------------------- PHP Version 5.6.14 cakephp 2.5系 mariadb-10.0.21-with-mroonga-5.08-winx64 ---------------------------- cakephpで以下の事がやりたいです。 (1)select文を使用してデータの抽出 (2)(1)を利用してテンポラリテーブルを作成。 (3)web上で検索結果を表示。 ※ページングを行いたのでcakePHPでページネーションを使用したいです。 (4)次ページやソート変更の際にはテンポラリテーブルからselect。 cakephpでテンポラリテーブルを作成、使用する場合のやり方がわからず、 頓挫しております。 お手数をお掛け致しますが、 何かご指摘点でも構いませんので、ご回答頂ければ幸いで御座います。

    • ベストアンサー
    • PHP
  • テーブルが削除できない

    MySQL5でアクセスの「入金」という日本語名のテーブルをインポートしました。しかしMySQLではテーブル名がバグってしまい、MySQL Command Line Clientで以下のように削除しようとしても「Unknown table 蜈・驥・」と出て削除できません。削除したいテーブルが指定できず困っています。強制的に削除する方法はないでしょうか? set names sjis; use データベース名; drop tabe 入金;

  • MySQLのVIEWテーブルが削除できない

    PHPプログラムを作りながらMySQLクエリをしていました。MySQLのクエリの過程でviewを作っていましたが開発中なので、createはしたもののdropしないというのをくりかえしてました。 プログラムができたので、createしたら終了時にdropして始末できるようにしました。 そこで、開発過程で残ってしまったviewを、phpMyAdminやコマンドで削除しようとしましたが削除できません。 強制的でもいいので削除する方法を教えてください。