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も見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
あるDBから別のDBのテーブルをselectしたい
MySQL
-
select insert 句
Oracle
-
bashスクリプト内のpostgreSQL記述構文(\\COPY)のエラー解決について
その他(プログラミング・Web制作)
-
-
4
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
5
postgresql についてです
PostgreSQL
-
6
SQLでUPSERTを一度に複数行やる方法
PostgreSQL
-
7
Viewにインデックスは張れますか?
Oracle
-
8
例外処理のフローチャートの記述方法
C言語・C++・C#
-
9
他のデータベースとのテーブル結合
SQL Server
-
10
timestampのデータはどのようにして入力
PostgreSQL
-
11
Windows上のPostgreSQLの完全削除→再インストール
PostgreSQL
-
12
[PostgreSQL]別DBのテーブルのSelect、Insert
PostgreSQL
-
13
「指定されたキャストは有効ではありません。」とエラーが出てしまいます。
Microsoft ASP
-
14
文字列を time 型に変換するには。
PostgreSQL
-
15
タスクスケジュールの継続時間
Windows Vista・XP
-
16
batである文字列内に特定の文字列が含まれているか確認したい
その他(プログラミング・Web制作)
-
17
コマンドプロンプトの「%1」と「%~1」の違いがわからない
その他(プログラミング・Web制作)
-
18
データベースのINT型項目にNULLはNG?
MySQL
-
19
IISワーカープロセスが原因でCPUが100%に
Microsoft ASP
-
20
CPU動作消費やメモリ消費などの過去の履歴を参照することはできますか?
Windows Vista・XP
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
SQLにて指定日付より前、かつ最...
-
列が存在しないと言われる
-
自治会総会の成立要件について
-
postgreSQLのint型は桁数指定が...
-
エクセルで縦のカラムデータを...
-
PostgreSqlでFunctionの作成に...
-
postgresql についてです
-
Windows10がインストールできま...
-
PostgreSQLについて教えてくだ...
-
エクセルVBAでUWSCを使う
-
Windows10でQuickTimeがインス...
-
PostgresQLでサーバーを新規追...
-
SQLでUPSERTを一度に複数行やる...
-
マクロ 複数行を1行にしたい
-
PostgresSQLの環境設定について
-
postgresqlでのトランザクショ...
-
shellからpostgresqlへの変数の...
-
workbench/j について
-
古いノートパソコンなんですが...
-
select文の書き方で分からない...
マンスリーランキングこのカテゴリの人気マンスリー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
おすすめ情報