支援版本:目前 (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_fdw_handler 的外部資料封裝器 file

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 子句是擴充功能,且標準子句 LIBRARYLANGUAGE 未在 PostgreSQL 中實作。

請注意,SQL/MED 功能整體而言尚未完全符合。

提交更正

如果您在文件中看到任何不正確、與您使用特定功能的經驗不符或需要進一步澄清的地方,請使用此表格來報告文件問題。