PostgreSQLのリンクテーブルとは?

このQ&Aのポイント
  • PostgreSQLのリンクテーブルとは、異なるデータベース間でテーブルを参照するときに使用される機能です。
  • リンクテーブルを使用することで、TEST1のデータベースからTEST2のデータベースのテーブルを参照することが可能です。
  • PostgreSQLのバージョン8.2.3およびCentOS環境でリンクテーブルを作成することができます。
回答を見る
  • ベストアンサー

PostgreSQLのリンクテーブル?について

はじめまして、yossy136kgと申します。 下記の件、ご教授をお願いします。 ・TEST1というDBがあったとして、psqlより\dでテーブル一覧を参照すると、「No relations found.」と表示されます。 ・MS AccessからODBC経由でTEST1のDBのリンクテーブルを作成する際、別のDB(TEST2)のテーブルが参照できます。 例)TEST2.HOGE1、TEST2.HOGE2・・・ 【質問】 TEST1のDBからTEST2のDBのテーブルをリンクさせるようなことは可能なのでしょうか? ちなみにPostgreSQL8.2.3、CentOSです。

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

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

RDBMSにより、「データベース」の概念が異なっているので、分かりづらい部分ですね。 PostgreSQLでは、「複数データベースの操作」は未実装のようです。 http://www.postgresql.jp/document/pg823doc/html/ddl-schemas.html 「サーバに接続しているクライアントは、単一のデータベース、つまり接続要求で指定したデータベース内のデータにしかアクセスできません。」

yossy136kg
質問者

お礼

ご回答頂きましたサイトで解決致しました。 単に別スキーマを定義しているだけでした。 知識不足、お恥ずかしい限りです。 大変有難うございました。 以上

関連するQ&A

  • PostgreSQLのテーブルをAccessで

    (Windows2000 MS-Access2000 RedHatLinux7.2 PostgreSQL7.1.3) ポスグレのテーブルをAccessにリンクしたいのですが、ポスグレ用日本語対応ODBCドライバを登録する際に、PostgreSQL Driver Setupで、User NameとPasswordを入力するところがありますが、ここのユーザー名とパスワードはどこのIDとパスワードを入れたらいいですか? ポスグレの方はpostmasterを起動してtemplate1というのがあるので、それをAccessから操作したいのですが・・・。 宜しくお願いします!!

  • OpenOffice BaseでAccessの「テーブルのリンク」

    Accessでは「テーブルのリンク」で複数のDBのテーブルのリンクを作成することができますが、 同じことをOpenOffice Baseにて行うことはできますか? やりたいことは、OpenOfficeがインストールされているWindowsマシンから、 複数のLinuxマシンのDB(PostgreSQL・MySQL)や当該Winマシンのmdbと接続し、 サーバ・DBを跨いでテーブルの結合(Viewの作成)をしたいのです。 現在、ODBC経由でそれぞれのDBとの接続をし、それぞれをOpenOfficeで リンクすることはできていますが、1つのodbファイルから全てのDBを 参照する方法がわかりません。 既存の複数システムのDBなので、それぞれのDBに手を入れることや、 DB設計を変えることはできません。 また、Windowsマシンにmdbファイルは置かれていますが、Officeは インストールされていません。 OpenOfficeについてあまり知識がないのですが、 ご教示いただけると助かります。

  • postgreSQLでのユーザ作成

    宜しくお願い致します。 postgresql7.2 でlinuxアカウントに登録されていない ユーザを作成しました。(createuser hoge) その後 "psql -U hoge DB名" でアクセスすると psql: FATAL 1: user "hoge" does not exist になってしまいます。 linuxアカウントに登録されていないユーザで DBにアクセスする事は可能なのでしょうか? それとも必ずlinuxアカウントに登録されている ユーザ名で作成する必要があるのでしょうか? ご教授下さい。m(__)m

  • PostgreSQLの入れ替え

    PostgreSQLのホントの初心者です。 今使っているLinuxサーバ(RedHat9)になぜかたま たまPostgreSQL(7.3.2)が入っていて、使っていた のですが、この際8.1.4に上げようと思いたちました。 これは、バージョンアップというより「入れ直し」と 考え、まず7.3.2を削除しようと考えて、 # rpm -e postgresql と入れてみたのですが、関連付けられているためか 削除できません。 それで、7.3.2にDBを全部削除してしまえばよいと 考え、5つのDB(template0,template1,test,test2, db1)を削除する方法を調べたのですが、「psql」で はDBは消せないようですし、どれかのDBに入って SQLを動かすと、「自分(のDB)」はけセません。 それと、最初からあった、template0,template1も 削除できませんでした。 DBを消すのが目的ではなく、7.3.2を削除したいので すが、どのようにやったらよいか教えて下さい。 よろしくお願いします。

  • postgreSQLでテーブルの閲覧ができない

    環境 Windows7 64bit Access2010(試用版) 会社で使用しているシステム(Access2002)をAccess2010の環境で使用した場合の 動作チェックおよび改修を行っています。 PstgreSQLというものを使用しています。 (PstgreSQLについては詳しく知りません。) PostgreSQLのODBC接続を利用してリンクテーブルを作成しています。 Windows7での使用のために下記URLの手順でインストールを行ったところ、無事接続できました。 http://blogs.yahoo.co.jp/kensinisnek/10176003.html ところが、いくつかあるリンクテーブルのうちの1つだけ、「ODBC接続に失敗しました」と メッセージが出てきて閲覧できません。 このテーブルだけリンク先が違うということはなく、すべて同じDSNを使用してのODBC接続です。 また、AccessファイルにはVBA、マクロ、クエリ、フォームはなく、いくつかのリンクテーブルがあるだけです。 同じDSNを使用しているのに1テーブルだけ閲覧できないということはあり得るのでしょうか? また、何が原因なのでしょうか? 別のDSNを使用しましたが、Windows XP、Access2002の環境ではすべてのテーブルを閲覧できました。

  • ExcelにPostgreSQLのデータを取り込むには

    以下のサイトを参考にして、ODBC接続によるExcelへのPostgreSQLデータ取り込みを試みました。 「PostgreSQL ODBCによるアプリケーション接続」 http://allabout.co.jp/internet/database/closeup/CU20050219A/index.htm 「2. ExcelにPostgreSQLのテーブルのデータを取り込む手順」 http://allabout.co.jp/internet/database/closeup/CU20050219A/index2.htm ODBCの設定自体はたぶんうまくいったと思うのですが、いざExcelからPostgreSQLを取り込もうとすると、「このデータソースには表示できるテーブルがありません」というメッセージが表示されてしまいます。 接続先のDBには、テーブルは存在しています。 試しに、Accessでも以下のサイトの手順で試して見ましたが、「テーブルのリンク」画面に対象となるテーブルが1件も表示されません。 「3. AccessにPostgreSQLのテーブルのデータを取り込む手順」 http://allabout.co.jp/internet/database/closeup/CU20050219A/index3.htm テーブルとのリンクをはるために他にも何か設定は必要でしょうか? PostgreSQLは8.0.1、Officeは2003を使用しています。 接続は自分のPC内にあるOfficeから同じく自分のPC内にあるPostgreSQLへ接続しに行こうとしています。 よきアドバイスをいただけると助かります。 以上、よろしくお願いいたします。

  • Accessのリンクテーブルについて

    Access2000を使用しているのですが、SQLServerのDBをリンクしなければいけないのですが、ODBCを使用せずにリンクさせる方法はあるのでしょうか? またはモジュールでコードを記述してリンクテーブルを作成する方法でもかまわないのですが・・・。 作成したAccessを配布したPCにODBCを設定するのが面倒なのですが・・・。 なにかいい方法があるのか教えていただきたいです。

  • [PostgreSQL]別DBのテーブルのSelect、Insert

    お世話になっております PostgreSQL8.1を使用しまして あるテーブルにInsertがかかると その内容を判断し別のテーブルに insertをする仕組みが必要になり いろいろ試してみて TriggerとFunctionを使用すれば 実装できるとこまでわかりました。 ただしその別テーブルが別DBに配置されているので そのテーブルに以下のようなInsert文を発行しても エラーになってしまいます。 Insert into SUB_DB.TEST_TBL values('test','date'・・・・); (SUB_DB:ストアドを実行しているのとは別のDB) ストアドから別テーブルを参照更新する手段を ご存知のかたご教授いただけますでしょうか。 よろしくお願いいたします。

  • Accessでリンクしたテーブルのリレーションが設定できない

    PostgresへA5SQLとか言うツールを使ってテーブルを2つCreateTableしました。 テストデータも入力しました。 あらためてAccessでPostgresのテーブルをリンクテーブルとして参照しデータを見ることが出来ましたが、Access上でリレーションが未定義でサブフォームを作成することが出来ません。 リレーションを1:多で作成しようと思うのですが、設定フィールドが真っ白でいじれません。 何故でしょうか? 基本的にCreateTableするときに、なにやらリレーション設定する構文が必要だったのでしょうか? 今は、CreateTableしか構文は記述されていません。 どなたかご教授ください。 よろしくお願いします。

  • PostgreSQLで外部DB内のテーブル参照方法を教えてください

    PostgreSQLで別データベースのテーブルを参照することはできますか? 仮に以下のデータベースが2つあるとします CREATE DATABASE common_db ... CREATE DATABASE app1_db ... app1_db に接続した状態で common_db のテーブルを参照することはできますか? 仮にcommon_dbに郵便番号テーブル postcodeがあるとします CREATE TABLE postcode ( postcode text, --郵便番号 pref_name text, -- 県名  ・・・ ) このpostcodeテーブルをapp1_dbに接続した状態で参照するには、どのような参照クエリになりますか? ご教授の程よろしくお願います。 そもそもできないのでしょうか?