0
我正在關注PostgreSQL書籍,並且必須將CSV文件導入表census.lu_tracts
。在PostgreSQL導入過程中出現重複鍵
問題:在進行INSERT
查詢,如下圖所示,我得到的錯誤:
ERROR: duplicate key value violates unique constraint "pk_lu_tracts"
DETAIL: Key (tract_id)=(25001010800) already exists.
怎麼的關鍵變成複製? SELECT * from lu_tracs
顯示0行。
CREATE SCHEMA census;
set search_path=census;
CREATE TABLE lu_tracts(tract_id varchar(11), tract_long_id varchar(25)
, tract_name varchar(150)
, CONSTRAINT pk_lu_tracts PRIMARY KEY (tract_id));
INSERT INTO lu_tracts(tract_id, tract_long_id, tract_name)
SELECT geo_id2, geo_id, geo_display
FROM staging.factfinder_import
WHERE geo_id2 ~ '^[0-9]+';
事務被中止,因此沒有行被插入 - 以及爲什麼您在該表中看到0行。您最有可能在'staging.factfiner_import'表中有一個重複的地方,其中'geo_id2' ='25001010800'。你可以嘗試使用'SELECT DISTINCT'來修復它。否則,你需要以另一種方式過濾它。 – jcern 2013-03-26 18:22:24
'DISTINCT ON(geo_id2)'可能會比'DISTINCT'更好。 – 2013-03-26 18:23:50
'DISTINCT ON(geoid2)'作品:) – Nyxynyx 2013-03-26 21:35:15