這個問題已經被問幾個人,但我的問題似乎是不同的。
其實我不得不從PostgreSQL中不同的數據庫結構相同的表合併成一個新的數據庫。我在做什麼,是我連接到遠程數據庫使用DBLINK,讀取該表在數據庫,並將其插入到表在當前DB像下面PostgreSQL的:錯誤重複鍵值違反唯一約束
INSERT INTO t_types_of_dementia SELECT * FROM dblink('host=localhost port=5432 dbname=snap-cadence password=xxxxxx', 'SELECT dementia_type, snapid FROM t_types_of_dementia') as x(dementia_type VARCHAR(256),snapid integer);
首次在此查詢運行正常,但是當我運行再次,或嘗試一些其他的遠程數據庫的表中運行它:它給了我這個錯誤
ERROR: duplicate key value violates unique constraint "t_types_of_dementia_pkey"
我想,這個新表中獲取來自其他DBS其他表的條目填充。 一些解決方案的提出關於序列會談,但我沒有使用任何
表的結構在當前db是
CREATE TABLE t_types_of_dementia(
dementia_type VARCHAR(256),
snapid integer NOT NULL,
PRIMARY KEY (dementia_type,snapid)
);
附:有兩個列用作主鍵的具體原因可能與本次討論無關,因爲同樣的問題在其他表中並非如此。
感謝@Jonas。是否會有解決這個問題的方法? – Shehroz
@Shehroz:您需要使用另一個主鍵,請參閱我的更新。 – Jonas
@喬納斯 - 感謝您的指點。在其他表格中,情況可能會有所不同,但我明白你的核心思想。 – Shehroz