Todos os produtos
Search
Central de documentação

ApsaraDB RDS:ST_RegForeignTables

Última atualização: Aug 22, 2026

Registra uma ou mais tabelas de um source de dados externo como tabelas externas do PostgreSQL e cria um servidor externo em uma única chamada.

Sintaxe

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 ''
);

Parâmetros

Parâmetro

Obrigatório

Padrão

Descrição

source

Sim

Caminho do source de dados. Para formatos de caminho compatíveis, consulte Object storage paths.

server_name

Não

ganos_fdw_server

Nome do servidor externo a criar. Se omitido, o servidor receberá o nome ganos_fdw_server.

driver

Não

Driver padrão

Driver para acessar o source de dados. Para listar os drivers disponíveis, chame ST_FDWDrivers.

config_option

Não

''

Variáveis de ambiente para configurar na conexão com o source de dados.

open_option

Não

''

Opções específicas do driver para abrir o source de dados. Por exemplo, passe SHAPE_ENCODING=LATIN1 para ESRI Shapefiles com codificação Latin-1.

tables

Não

NULL

Nomes das tabelas a registrar. Para listar os nomes de tabela disponíveis, chame ST_ForeignTables.

prefix

Não

''

Prefixo a adicionar ao nome de cada tabela externa. Use este parâmetro para evitar conflitos de nomes ao registrar tabelas de múltiplos sources de dados.

Descrição

A função ST_RegForeignTables encapsula o fluxo de trabalho do foreign data wrapper (FDW) do PostgreSQL — criação de servidor externo e registro de tabelas externas — em uma única chamada. Ela lê o source de dados especificado, cria um servidor externo com o nome fornecido e registra as tabelas encontradas como tabelas externas no banco de dados atual.

Após o registro, consulte information_schema.foreign_tables para confirmar quais tabelas foram criadas e verifique seus respectivos nomes.

Exemplos

Todos os exemplos usam um caminho do Object Storage Service (OSS) como source de dados. Substitua <access_id>, <secret_key>, <Endpoint>, <bucket> e path_to/file pelos valores reais.

Registrar todas as tabelas com o nome de servidor padrão

Se não for necessário um nome de servidor personalizado, omita server_name. A função cria automaticamente um servidor externo chamado ganos_fdw_server.

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

Registrar todas as tabelas com um nome de servidor personalizado

Ao registrar múltiplos sources de dados, use nomes de servidor distintos para mantê-los separados.

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

Especificar um driver e opção de abertura

Quando o source de dados exige um driver ou codificação específica, defina driver e open_option. Este exemplo registra um diretório ESRI Shapefile com codificação Latin-1.

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

Registrar um subconjunto de tabelas

Se um source de dados contiver várias tabelas, mas você precisar apenas de algumas, passe os nomes das tabelas desejadas como um array. Para descobrir previamente os nomes disponíveis, chame 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

Adicionar um prefixo aos nomes das tabelas externas

Para evitar que os nomes das tabelas externas entrem em conflito com tabelas existentes, use prefix para diferenciá-las por namespace.

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

Verificar o registro

Após chamar ST_RegForeignTables, confirme a criação das tabelas externas consultando information_schema.foreign_tables.

Próximos passos

  • Chame ST_ForeignTables para listar todas as tabelas disponíveis em um source de dados antes de registrá-las

  • Use ST_FDWDrivers para obter a lista de drivers compatíveis com o formato do seu source de dados