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

PolarDB:ST_RegForeignTables

最終更新日:Mar 29, 2026

データソースから 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データソースのパス。サポートされているパス形式については、「オブジェクトストレージパス」をご参照ください。
server_name作成する外部サーバーの名前。デフォルト値は ganos_fdw_server です。
driverデータソースの読み取りに使用するドライバー。省略した場合は、デフォルトのドライバーが使用されます。サポートされているドライバーについては、「ST_FDWDrivers」をご参照ください。
config_option設定する環境変数。
open_optionデータソースへのアクセス時に使用するオプション。たとえば、LATIN1 エンコーディングを使用する Shapefile を処理するには、SHAPE_ENCODING=LATIN1 を渡します。
tables外部テーブルとして登録するテーブル名の配列。この関数を呼び出す前に、利用可能なテーブル名を確認するには「ST_ForeignTables」をご参照ください。
prefix各外部テーブル名の先頭に付加するプレフィックス。複数のデータソースからテーブルを登録する際に、名前の競合を回避するために役立ちます。

説明

ST_RegForeignTables は、Foreign Data Wrapper (FDW) のセットアップ全体を単一の関数呼び出しにまとめます。指定された名前で外部サーバーを作成し、その後、対象のテーブルを外部テーブルとして登録します。戻り値は、Create server '<server_name>' successfully という形式の確認メッセージです。

登録後は、information_schema.foreign_tables をクエリして、作成された外部テーブルを確認できます。

使用例

デフォルトのサーバー名を使用してすべてのテーブルを登録

server_name を省略すると、デフォルトのサーバー名 ganos_fdw_server が使用されます。

SELECT ST_RegForeignTables('OSS://<ak_id>:<ak_secret>@<endpoint>/data');

出力:

 Create server 'ganos_fdw_server' successfully

カスタムサーバー名を使用してすべてのテーブルを登録

SELECT ST_RegForeignTables('OSS://<ak_id>:<ak_secret>@<endpoint>/data',
                           'my_server');

出力:

 Create server 'my_server' successfully

エンコーディングオプションを指定して Shapefile データを登録

Shapefile が UTF-8 以外の文字コードを使用している場合、open_option を使用してソースのエンコーディングを設定します。

SELECT ST_RegForeignTables('OSS://<ak_id>:<ak_secret>@<endpoint>/data',
                           'myserver',
                           'ESRI Shapefile',
                           '',
                           'SHAPE_ENCODING=LATIN1');

出力:

 Create server 'myserver' successfully

特定のテーブルのみを登録

データソース内のすべてのテーブルではなく、指定されたテーブルのみを登録するには、cstring 配列を渡します。

SELECT ST_RegForeignTables('OSS://<ak_id>:<ak_secret>@<endpoint>/data',
                           'myserver',
                           'ESRI Shapefile',
                           '',
                           'SHAPE_ENCODING=LATIN1',
                           ARRAY['point', 'roads']::cstring[]);

出力:

 Create server 'myserver' successfully

名前のプレフィックスを付けて特定のテーブルを登録

複数のデータソースからテーブルを登録する際の名前競合を回避するために、prefix を使用して各外部テーブル名の先頭に文字列を付加します。

SELECT ST_RegForeignTables('OSS://<ak_id>:<ak_secret>@<endpoint>/data',
                           'myserver',
                           'ESRI Shapefile',
                           '',
                           'SHAPE_ENCODING=LATIN1',
                           ARRAY['point', 'roads']::cstring[],
                           'myprefix');

出力:

 Create server 'myserver' successfully