• ベストアンサー

テーブル名を*で検索できますか?

同じ構造のテーブルが10個ぐらいあるのですが、 どのテーブルのカラムidに'001'が入っているかを SQLだけで検索することは可能でしょうか? 以下のようにやってみましたが駄目でした。 select * from log_0* where id='001' オラクルならできるなどでもOKです。 よろしくお願いします。

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

  • ベストアンサー
  • umota
  • ベストアンサー率46% (150/324)
回答No.2

すみません、勘違いでした。 PostgrSQL の ML を捜しましたがテーブル名を変数化するのは無理のようです。 ML http://ml.postgresql.jp/pipermail/pgsql-jp/2003-November/thread.html#6710 関係ありそうだがちょっと違うみたい http://ml.postgresql.jp/pipermail/pgsql-jp/2003-November/006594.html # すでに見ていたらごめんなさい

その他の回答 (1)

  • umota
  • ベストアンサー率46% (150/324)
回答No.1

システムテーブルを参照すればできると思います。 サンプル(基本形) select t1.relname from pg_class t1, pg_attribute t2 where((t1.relfilenode=t2.attrelid)and(t2.attname='001')); で カラム名 '001' を含むテーブル名を抽出できます。 # PostgreSQL-7.4.2 で試してみました。

natsuyori
質問者

お礼

難しいですがシステムテーブルという発送はありませんでした。ありがとうございます。 私の書き方が悪くてすみません。 カラム名が001ではなく、カラム名idに、001が格納されているレコードやテーブル名を取得したく思います。

関連するQ&A