在postgresql中更新远程表(保持fks)

时间:2011-02-22 12:42:59

标签: sql database postgresql

我在工作中使用pgAdmin III,在工作和远程托管服务器(webfaction)上使用postgresql。通过Putty,我正在为pgAdmin创建一个隧道,以便与我的本地和远程数据库一起工作。我有一个表,其中主键由其他表的键引用(作为外键)。

使用我本地表上的值更新远程表的最佳方法是什么?

我(尝试失败)尝试做的是“备份”我的本地表,然后尝试使用该文件“恢复”我的远程表。但是,pgAdmin III给出了重复的键值错误。

pg_restore: connecting to database for restore
pg_restore: restoring data for table "main_city"
pg_restore: [archiver (db)] Error while PROCESSING TOC:
pg_restore: [archiver (db)] Error from TOC entry 1972; 0 17110 TABLE DATA main_city user
pg_restore: [archiver (db)] COPY failed: ERROR:  duplicate key value violates unique constraint "main_city_pkey"
CONTEXT:  COPY main_city, line 1: "1    London  20  30  4   1"
pg_restore: setting owner and privileges for TABLE DATA main_city
WARNING: errors ignored on restore: 1

Process returned exit code 1.

我要尝试另一个postgresql客户端吗?如果我尝试删除所有这些引用并尝试手动更新,那将是一种痛苦。任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:1)

我对pgAdmin一无所知但是如何将文件中的数据添加到临时表中并根据行是否存在更新/插入原始表中?