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に接続した状態で参照するには、どのような参照クエリになりますか?
ご教授の程よろしくお願います。
そもそもできないのでしょうか?
No.1ベストアンサー
- 回答日時:
PostgreSQL 本体の機能では実現できませんが、contrib モジュールの dblink を使えばできます。
dblink のインストール方法は PostgreSQL のインストール方法によって異なりますが、RPM パッケージであれば postgresql-contrib というパッケージをインストールし、以下のように dblink の関数などを定義します。
psql -f /usr/share/postgresql/contrib/dblink.sql (データベース名)
データベース名には他のデータベースにアクセスしたいデータベース名、例では app1_db を指定します。なお、dblink.sql のパスはパッケージによって異なる場合があります。
dblink をインストールすれば以下のように関数を呼び出して別のデータベース内のテーブルを参照できます。
SELECT * FROM dblink('dbname=common_db', 'SELECT * FROM postcode') AS postcode(postcode text, pref_name text);
dblink について詳しくは PostgreSQL のマニュアルを読んでください。
http://www.postgresql.jp/document/pg840doc/html/ …
ただ、質問の例にあるデータベース名やテーブル名を見ていると、アプリケーションごとに名前空間を分けたいだけのようなので、それであればスキーマを使ったほうがよさそうな気もします。
参考URL:http://www.postgresql.jp/document/pg840doc/html/ …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- MySQL PHP 画像のアップロード Qiita 2 2022/11/28 04:44
- Ruby pandasでsqlite3にテーブル作成・追加・読み出しでindexの取り扱い方教えてください 5 2023/03/08 09:57
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- その他(データベース) pythonでsqlight勉強中、クエリー結果の利用法教えて下さい 1 2022/04/28 20:38
- MySQL PHPとMySQLを使った掲示板の作り方 1 2022/06/02 13:00
- Access(アクセス) アクセス テーブルの空白を変数に置換するボタンが作りたい 4 2022/07/08 11:19
- SQL Server DBのテーブルの設計ができず困っています。 2 2023/06/29 16:43
- Excel(エクセル) アウトラインの小計のやり方 1 2023/03/20 11:51
- MySQL MySQLのテーブル作成で 自信がありません。 2 2022/08/28 05:35
- Visual Basic(VBA) ACCESS DAO で不要なテーブルのフィールド(列)の削除 4 2022/06/23 12:13
このQ&Aを見た人はこんなQ&Aも見ています
-
風水の観点で選ぶ観葉植物とは?置き場所や上げたい運気ごとの注意点を紹介!
観葉植物で運気をアップするコツを、風水デザイン1級建築士の福島昌彦さんに伺った。
-
あるDBから別のDBのテーブルをselectしたい
MySQL
-
select insert 句
Oracle
-
bashスクリプト内のpostgreSQL記述構文(\\COPY)のエラー解決について
その他(プログラミング・Web制作)
-
-
4
postgresql についてです
PostgreSQL
-
5
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
6
他のデータベースとのテーブル結合
SQL Server
-
7
SQLでUPSERTを一度に複数行やる方法
PostgreSQL
-
8
例外処理のフローチャートの記述方法
C言語・C++・C#
-
9
timestampのデータはどのようにして入力
PostgreSQL
-
10
Viewにインデックスは張れますか?
Oracle
-
11
[PostgreSQL]別DBのテーブルのSelect、Insert
PostgreSQL
-
12
タスクスケジュールの継続時間
Windows Vista・XP
-
13
Windows上のPostgreSQLの完全削除→再インストール
PostgreSQL
-
14
batである文字列内に特定の文字列が含まれているか確認したい
その他(プログラミング・Web制作)
-
15
CPU動作消費やメモリ消費などの過去の履歴を参照することはできますか?
Windows Vista・XP
-
16
異なるサーバのDBデータ同士を結合するには?
Oracle
-
17
コマンドプロンプトの「%1」と「%~1」の違いがわからない
その他(プログラミング・Web制作)
-
18
文字列を time 型に変換するには。
PostgreSQL
-
19
PostgreSqlでFunctionの作成について
PostgreSQL
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PostgreSQLで外部DB内のテーブ...
-
[PostgreSQL]別DBのテーブルのS...
-
【PostgreSQL】行の値の並びを...
-
SQLManagementStudioのフィルタ
-
「マスタ」と「テーブル」の違...
-
エクセル
-
2つのテーブルから条件に一致...
-
ACCESS2007 フォーム 「バリア...
-
数百万件レコードのdelete
-
[ BETWEEN ] vs [ >= AND <= ]
-
accessテーブル作成クエリを実...
-
オラクルではできるのにSQLSERV...
-
データの二重表示の原因
-
2つの項目が重複するレコード...
-
accessのロック
-
ACCESSのSQLで、NULLかNULLでな...
-
sqlserverで集計結果をUPDATEし...
-
Accessにインポートしたら並び...
-
エクセルでテーブルの最終行が...
-
ACCESSでのエクセルインポート...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PostgreSQLで外部DB内のテーブ...
-
SQLServerでテーブルの列数を求...
-
【PostgreSQL】行の値の並びを...
-
主キーの取得
-
SQLManagementStudioのフィルタ
-
[PostgreSQL]別DBのテーブルのS...
-
SQLサーバーとMySQLの大きな違...
-
システムテーブルについての疑問
-
照合順序の変更について
-
「マスタ」と「テーブル」の違...
-
[ BETWEEN ] vs [ >= AND <= ]
-
2つのテーブルから条件に一致...
-
ACCESSのSQLで、NULLかNULLでな...
-
オラクルではできるのにSQLSERV...
-
SELECT時の行ロックの必要性に...
-
3つ以上のテーブルをUNIONする...
-
SELECT文でのデッドロックに対...
-
2つの項目が重複するレコード...
-
Access VBA [リモートサーバー...
-
数百万件レコードのdelete
おすすめ情報