我有两个数据库。在每个数据库中,我都有一个employee
表,该表的列数和列名各不相同。
这是表在第一个数据库中的样子:
Emp_ID Name Father_Name Family_Name
1 Max Stjepan Neg
2 John Chris James
这是将在第二个数据库中的第二个表的样子:
ID Name Father_Name Family_Name Blood_Type
1 Max Stjepan Neg ARH+
2 John Chris James ORH-
现在,在Second Database中创建外表时,我想使用列名 ID 存储First DatabaseEmp_ID
中的值,并且我还希望我的外表包含当前数据库Second Database中表中的血型。
简而言之,如何创建一个列名与远程数据库中的原始表不同的外部表?它还应该包括当前数据库中第一个表中的列。
您可以随意命名外表的列。例如,在
IMPORT FOREIGN SCHEMA ...
你可以做(对于
CREATE FOREIGN TABLE
,您必须在OPTIONS
子句中为列指定不同的列名CREATE FOREIGN TABLE foreign.employee (emp_id integer OPTIONS (column_name 'id'), ...
:)您不能做的是混合来自本地表和外部表的列。要实现类似的目的,您可以创建一个视图:
我故意交换了这个例子中的表格。您的示例表差异不大,因此在本地
employee
表上的一个简单视图(其中id
列被命名)emp_id
就可以解决问题,而无需触及其他数据库。