• ベストアンサー

pg_queryでテーブルを

作りたいのですが 既に存在するテーブルを作ろうとすると エラーになり作れません そこでこれから作ろうとする名前の テーブルが存在しているかどうかを調べて 存在していれば drop table してから create table 使用と考えています テーブルが存在しているかどうかを知るための SQL文を教えてください それが無ければ他の対処方法を教えてください

  • guuman
  • お礼率86% (1043/1206)
  • PHP
  • 回答数1
  • ありがとう数1

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

  • ベストアンサー
  • kaz33
  • ベストアンサー率60% (20/33)
回答No.1

SELECT * FROM pg_tables WHERE tablename = 'テーブル名'; これで検索できます(^-^

guuman
質問者

お礼

ありがとうございます

関連するQ&A

  • テーブルが存在していたら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

  • テーブルを作ろうとしたら。

    下記のようなエラー文が表示されます。 NOTICE: CREATE TABLE will create implicit sequence 'テーブル名とフィールド名をくっつけたような名前' fo r SERIAL column 'テーブル名.フィールド名' NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index 'テーブル名_pke y' for table 'テーブル名' このデーターベースには他にもテーブルがありますが、 名前が主キーで名前が同じものがあるからエラーがでると思い、名前を変更して実行しましたが、同じような エラーがでました。 テーブル名とフィールド名をくっつけたような名前はもともとなかったものなのですが、実行後にデータベースに作成されました。 どなたかわかる方がいたら、ご教授お願いいたします。

  • SQL テーブル削除

    教えてください。 あるテーブルをエクスポートする際にエクスポートエラー が出ます。(このエラーは承知でエラーを出しています。)その際にエクスポートエラーのテーブルが作成されますが、このテーブルをSQLのDROP文で削除したいのですが テーブル名がエクスポートvエラー(v=スペースです。) になってしまいます。 例)T_1_エクスポートvエラー このテーブルを削除しようと  DROP TABLE T_1_エクスポートvエラー ってSQLを書くとT_1_エクスポートが見つかりませんとエラーになってしまいます。 どうしたら、このテーブルを削除できるでしょうか? それとも、エクスポートエラーのテーブルを作成させない設定ってあるんでしょうか? わかりにくい説明でごめんなさい。 よろしくお願いします。

  • テーブルの再作成におけるリコンパイル

    あるテーブルを再作成(Drop→Create)すると、 そのテーブルを参照しているビュー等をリコンパイルしないといけないですよね。 参照しているビューをあらかじめ分かっている場合はいいのですが、 分かっていない場合、オブジェクトブラウザの”状態”で、エラーがないか 確認しています。 質問は    PL*SQLで同じ事(エラーがあるか確認)をする事は可能でしょうか。    出来る場合、リコンパイルも行えるのでしょうか。    出来ない場合、他の方法で確認する事は出来ないでしょうか。 環境は    Oracle8i    Windows2000  です。 よろしくお願いします。

  • AccessのテーブルをSQL文にしたい

    urizakaです。 さて、今回質問したいのは、Accessで作ったテーブルをSQL文にする方法です。 具体的には、ACCESSで作ったテーブルを、 CREATE TABLE ××× (              ) INSERT… というSQL文にしたいのですが、これはどうすれば良いのでしょうか? すみませんが、教えてください。            

  • テーブルを、たとえそれが存在しなくてもメッセージが出ないで、削除したい

    テーブルを、たとえそれが存在しなくてもメッセージが出ないで、削除したい。 Access2007を使っています。仮にテーブルAとします。テーブルAが存在している場合は、drop tableなどで簡単に消せます。が、存在しない場合は、エラーまたはメッセージが出てしまいます。やりたいことは、テーブルAが存在してもしなくても、メッセージが出ないようにして、テーブルAが存在しない状態にしたいのですが。SQLビューで(または簡単に)実現する方法はあるのでしょうか? 初心者のため、些細なことでつまづいています。

  • オラクルのテーブルについて

    質問があります。 SQL文で指定したテーブル(test_tbl)のCREATEされた 日時とかわかるようなものはないでしょうか? たとえばテーブル (table_a, table_b, teble_c:全て同じ構成だが格納データが異なる)が あって一番最後に作成されたテーブルに アクセスしたい場合なんですが どのようなSQL文になるでしょうか? またそんな事はSQLではかけないような場合、 どのようにすればテーブルのクリエート日付を取得 することができるでしょうか? 宜しくお願いいたします。

  • Oracleのテーブル作成スクリプトを作成したい

    Oracle8i のDBA Studioで数十の表を作成したのですが、ここからテーブルの作成スクリプトを出そうとして困りました。いわゆる Create Table文なのですが、これを自動で簡単に作る方法はないでしょうか?SQL-ServerのEnterprise Managerでは、SQLスクリプトの作成があって、Create文を簡単に生成できるのですが、これと同じような感覚で、既に作成してあるテーブルのCreate文を出力する方法はないでしょうか?Oracleには、ほとんど慣れていないので、方法があると思うのですが、探し方が悪いらしく途方にくれています。どなたかよい方法を御存じないでしょうか。

  • 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
  • 既にテーブルが存在する場合のインポート

    インポート対象のテーブルが既に存在する場合、次のエラーが発生します。 IMP-00015: オブジェクトがすでに存在するため次の文は失敗しました: "CREATE TABLE ... SQL Loaderではデータにスペースや改行が含まれているとdatの作成がめんどうですし、dmpファイルでcreate文を削除するようなこともできればしたくありません。 データを追記したいのでテーブルを削除せずにインポートしたいのですが、どうすればよいでしょうか?