2025年9月25日: PostgreSQL 18 釋出!
支援的版本: 當前 (18) / 17 / 16 / 15 / 14 / 13
開發版本: devel
不支援的版本: 12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4

CREATE FOREIGN DATA WRAPPER

CREATE FOREIGN DATA WRAPPER — 定義一個新的外部資料封裝器

概要

CREATE FOREIGN DATA WRAPPER name
    [ HANDLER handler_function | NO HANDLER ]
    [ VALIDATOR validator_function | NO VALIDATOR ]
    [ OPTIONS ( option 'value' [, ... ] ) ]

描述

CREATE FOREIGN DATA WRAPPER 建立一個新的外部資料封裝器。定義外部資料封裝器的使用者將成為其所有者。

外部資料封裝器的名稱在資料庫中必須是唯一的。

只有超級使用者才能建立外部資料封裝器。

引數

name

要建立的外部資料封裝器的名稱。

HANDLER handler_function

handler_function 是一個先前已註冊的函式名稱,該函式將被呼叫以檢索外部表的執行函式。處理函式不得接受任何引數,並且其返回型別必須為 fdw_handler

可以建立一個沒有處理函式的外部資料封裝器,但使用此類封裝器的外部表只能被宣告,而不能被訪問。

VALIDATOR validator_function

validator_function 是一個先前已註冊的函式名稱,該函式將被呼叫以檢查傳遞給外部資料封裝器的通用選項,以及用於外部伺服器、使用者對映和使用該外部資料封裝器的外部表的選項。如果未指定驗證器函式或 NO VALIDATOR,則在建立時不會檢查選項。(外部資料封裝器可能會在執行時忽略或拒絕無效的選項規範,具體取決於實現。)驗證器函式必須接受兩個引數:一個型別為 text[] 的引數,它將包含儲存在系統目錄中的選項陣列;另一個型別為 oid 的引數,它將是包含選項的系統目錄的 OID。返回值將被忽略;函式應使用 ereport(ERROR) 函式報告無效選項。

OPTIONS ( option 'value' [, ... ] )

此子句指定新外部資料封裝器的選項。允許的選項名稱和值因每個外部資料封裝器而異,並透過外部資料封裝器的驗證器函式進行驗證。選項名稱必須是唯一的。

註釋

PostgreSQL 的外部資料功能仍處於積極開發中。查詢的最佳化是基礎的(並且大部分也留給封裝器)。因此,未來效能改進的空間相當大。

示例

建立一個無用的外部資料封裝器 dummy

CREATE FOREIGN DATA WRAPPER dummy;

建立一個外部資料封裝器 file,其處理函式為 file_fdw_handler

CREATE FOREIGN DATA WRAPPER file HANDLER file_fdw_handler;

建立一個帶有某些選項的外部資料封裝器 mywrapper

CREATE FOREIGN DATA WRAPPER mywrapper
    OPTIONS (debug 'true');

相容性

CREATE FOREIGN DATA WRAPPER 符合 ISO/IEC 9075-9 (SQL/MED),但 HANDLERVALIDATOR 子句是擴充套件,並且標準子句 LIBRARYLANGUAGEPostgreSQL 中未實現。

但是請注意,整個 SQL/MED 功能尚未完全符合標準。

提交更正

如果您在文件中發現任何不正確、與您對特定功能的體驗不符或需要進一步闡明的內容,請使用 此表格 來報告文件問題。