Postgresql

如何使用引用同名遠端表的外部數據包裝器創建外部表?

  • January 20, 2022

我有 2 個數據庫,其中一個名為logs

http_log:
id: serial
method: Varchar(10)
url: varchar(150)

我還有一個名為的數據庫archiving,它也有一個名為的表http_log

http_log:
id: unsinged integer
method: Varchar(10)
url: varchar(150)

如何創建外部表archived_http_log,以便將數據http_logarchived_http_log. 我的 postgresql 中不能有同名的表,因此我不能有 2 個名為http_log.

我最想要實現的是通過單個 SQL 腳本將數據logs.http_logarchiving.http_log. 所以在一個伺服器上執行:

INSERT INTO archived_http_log VALUES (SELECT * from http_log);

外部表不必與遠端表同名:

CREATE FOREIGN TABLE remote_http_log (
  id integer NOT NULL,
  method text,
  url text
) SERVER whatever OPTIONS (table_name 'http_log');

或者,您可以在不同的模式中擁有兩個同名的表。

引用自:https://dba.stackexchange.com/questions/306290