我有一个简单的表(id 和 name 列,都是唯一的),我正在导入一个制表符分隔的 CSV 文件。
我正在运行 psql 9.5,ON CONFLICT
如果 ID 已经存在,我想尝试更新 name 列的新功能。
CREATE TEMP TABLE tmp_x AS SELECT * FROM repos LIMIT 0;
COPY tmp_x FROM '/Users/George/git-parser/repo_file' (format csv, delimiter E'\t');
INSERT INTO repos SELECT * FROM tmp_x
ON CONFLICT(name) DO UPDATE SET name = tmp_x.name;
DROP TABLE tmp_x;
我收到此错误:
SELECT 0
COPY 1
ERROR: missing FROM-clause entry for table "tmp_x"
LINE 4: ON CONFLICT(name) DO UPDATE SET name = tmp_x.name;
^
Query failed
PostgreSQL said: missing FROM-clause entry for table "tmp_x"
不太确定这里出了什么问题。