- ベストアンサー
テーブル名を*で検索できますか?
同じ構造のテーブルが10個ぐらいあるのですが、 どのテーブルのカラムidに'001'が入っているかを SQLだけで検索することは可能でしょうか? 以下のようにやってみましたが駄目でした。 select * from log_0* where id='001' オラクルならできるなどでもOKです。 よろしくお願いします。
- みんなの回答 (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 で試してみました。
お礼
難しいですがシステムテーブルという発送はありませんでした。ありがとうございます。 私の書き方が悪くてすみません。 カラム名が001ではなく、カラム名idに、001が格納されているレコードやテーブル名を取得したく思います。