2

同じサーバーに同じユーザーの 2 つの DB があります。

  • ckan_default
  • datastore_default

ckan_defaultの関係は次のとおりです。

 Schema |             Name              | Type  |  Owner   
 -------+-------------------------------+-------+----------
 public | resource                      | table | ckanuser
 public | resource_group                | table | ckanuser
 public | package                       | table | ckanuser
 ....

datastore_defaultの関係は次のとおりです。

  Schema |                 Name                 | Type  |  Owner   
  -------+--------------------------------------+-------+----------
  public | 1bc7932e-2507-467b-8c12-c9f321b760f7 | table | ckanuser
  public | 449138df-e089-41f2-8939-dcee53a31bc1 | table | ckanuser
  public | 7235f781-1b16-4abf-ac04-8d68fa62e432 | table | ckanuser
  ....

ckan_default.resource.id = datastore_default."NAME OF RELATION" で 2 DB を結合するつもりはありません。

どのように?

4

2 に答える 2

3

私はあなたができるとは思わない。

dblink拡張機能を使用してデータベース B を A からクエリできますが、クエリはデータベース A のデータ コンテキストから分離されます。これが postgresql のしくみです。

EDIT : dblink クエリの結果からビューを生成して、それを使用できます。

CREATE VIEW myremote_pg_proc AS
  SELECT *
    FROM dblink('dbname=postgres', 'select proname, prosrc from pg_proc')
    AS t1(proname name, prosrc text);
SELECT * FROM myremote_pg_proc WHERE proname LIKE 'bytea%';

私が投稿したリンクの例。

于 2013-06-26T14:52:29.370 に答える