我在數據庫DB1
和表T2
表T1
在數據庫DB2
,這些表具有除了C_additional
柱幾乎相同的列集合中T1
,其不存在於T2
。我需要將T2
中的所有行轉移到T1
,爲插入的每一行設置一些值C_additional
。例如:T1
和T2
只有一個列integer
類型的C1
和T1
也有text
類型的C_additional
列,所以我的代碼如下所示:PostgreSQL的插入來自SELECT與附加列
INSERT INTO T1
SELECT
C1,
C_additional='needed_value'
FROM dblink(
'hostaddr=127.0.0.1 port=5432 dbname=DB2 user=postgres password=postgres',
'SELECT * FROM T2')
AS T2_row(C1 integer)
我收到以下錯誤:
ERROR: column "C_additional" does not exist
SQL state: 42703
Hint: There is a column named "C_additional" in table "T1", but it cannot be referenced from this part of the query.
如何使用SQL進行數據傳輸,還是應該使用PG/SQL?
顯示我們T1的和T2的定義。 – jarlh
'C_additional ='needed_value'是一個布爾表達式,用於評估列名「C_additional」是否等於常量「needed_value」。如果你想要一個列別名使用一個:''needed_value'as c_additional' –