すべてのプロダクト
Search
ドキュメントセンター

ApsaraDB RDS:ST_RegForeignTables

最終更新日:Aug 22, 2026

外部データソースの 1 つ以上のテーブルを PostgreSQL の外部テーブルとして登録し、1 回の呼び出しで外部サーバーを作成します。

構文

cstring ST_RegForeignTables(
    cstring source,
    cstring server_name DEFAULT '',
    cstring driver DEFAULT '',
    cstring config_option DEFAULT '',
    cstring open_option DEFAULT '',
    cstring[] tables DEFAULT NULL,
    cstring prefix DEFAULT ''
);

パラメーター

パラメーター必須デフォルト説明
sourceはいデータソースのパスです。サポートされているパス形式については、「Object storage paths」をご参照ください。
server_nameいいえganos_fdw_serverganos_fdw_server作成する外部サーバーの名前です。省略した場合、サーバー名は になります。
driverいいえデータソースにアクセスするためのドライバーです。利用可能なドライバーを一覧表示するには、ST_FDWDrivers を呼び出してください。
config_optionいいえ''データソース接続用の環境変数です。
open_optionいいえ''SHAPE_ENCODING=LATIN1データソースを開くためのドライバー固有のオプションです。たとえば、Latin-1 エンコーディングの ESRI シェープファイルの場合は を渡します。
tablesいいえNULL登録するテーブル名です。利用可能なテーブル名を一覧表示するには、ST_ForeignTables を呼び出してください。
prefixいいえ''各外部テーブル名の先頭に付与するプレフィックスです。複数のデータソースからテーブルを登録する際の名前の競合を回避するために使用します。

説明

ST_RegForeignTables は、外部サーバーの作成と外部テーブルの登録という PostgreSQL 外部データラッパー (FDW) のワークフローを、1 つの関数呼び出しにまとめます。指定されたデータソースを読み取り、指定された名前で外部サーバーを作成し、検出されたテーブルを現在のデータベースに外部テーブルとして登録します。

登録後、information_schema.foreign_tables にクエリを実行し、作成されたテーブルとその名前を確認します。

すべての例では、データソースとして Object Storage Service (OSS) パスを使用します。<access_id><secret_key><Endpoint><bucket>、および path_to/file は、実際の値に置き換えてください。

デフォルトサーバー名での全テーブル登録

カスタムサーバー名が不要な場合は、server_name を省略します。この関数は、ganos_fdw_server という名前の外部サーバーを自動的に作成します。

SELECT ST_RegForeignTables(
    'OSS://<access_id>:<secret_key>@[<Endpoint>]/<bucket>/path_to/file'
);
 Create server 'ganos_fdw_server' successfully

カスタムサーバー名での全テーブル登録

複数のデータソースを登録する場合は、異なるサーバー名を使用して区別します。

SELECT ST_RegForeignTables(
    'OSS://<access_id>:<secret_key>@[<Endpoint>]/<bucket>/path_to/file',
    'my_server'
);
 Create server 'my_server' successfully

ドライバーとオープンオプションの指定

データソースで特定のドライバーまたはエンコーディングが必要な場合は、driveropen_option を設定します。 この例では、Latin-1 エンコーディングの ESRI Shapefile ディレクトリを登録します。

SELECT ST_RegForeignTables(
    'OSS://<access_id>:<secret_key>@[<Endpoint>]/<bucket>/path_to/file',
    'myserver',
    'ESRI Shapefile',
    '',
    'SHAPE_ENCODING=LATIN1'
);
 Create server 'myserver' successfully

一部テーブルの登録

データソースに複数のテーブルが含まれていますが、その一部のみが必要な場合は、対象のテーブル名を配列として渡してください。利用可能なテーブル名を確認するには、まず ST_ForeignTables を呼び出してください。

SELECT ST_RegForeignTables(
    'OSS://<access_id>:<secret_key>@[<Endpoint>]/<bucket>/path_to/file',
    'myserver',
    'ESRI Shapefile',
    '',
    'SHAPE_ENCODING=LATIN1',
    ARRAY['point', 'roads']::cstring[]
);
 Create server 'myserver' successfully

外部テーブル名へのプレフィックス追加

外部テーブル名が既存のテーブルと競合する可能性がある場合は、prefix を使用して名前空間を付けます。

SELECT ST_RegForeignTables(
    'OSS://<access_id>:<secret_key>@[<Endpoint>]/<bucket>/path_to/file',
    'myserver',
    'ESRI Shapefile',
    '',
    'SHAPE_ENCODING=LATIN1',
    ARRAY['point', 'roads']::cstring[],
    'myprefix'
);
 Create server 'myserver' successfully

登録の確認

ST_RegForeignTables を呼び出した後、information_schema.foreign_tables にクエリを実行して、外部テーブルが作成されたことを確認してください。

次のステップ

  • 登録する前に ST_ForeignTables を呼び出し、データソースで利用可能なすべてのテーブルを一覧表示します。

  • ST_FDWDrivers を呼び出して、データソース形式の利用可能なドライバーを一覧表示します。