我试着把数据库转储到另一个。表中有一些重复的唯一值。当pg_dump试图将此项添加到db时,它会抛出一个错误并退出。错误就像;
ERROR: duplicate key value violates unique constraint "test_table_pkey"
DETAIL: Key (pktable)=(col11) already exists.
CONTEXT: COPY test_table, line 1: "col11 col12"我的桌子是;
Column | Type | Modifiers
-------------+-----------------------+-----------
pktable | text | not null
source | text | not null
Indexes:
"test_table_pkey" PRIMARY KEY, btree (pktable)我的命令是;
pg_dump -U postgres -v --data-only <db_name> | psql -U postgres -h <remote_host> -d <db_name>我希望pg_dump跳过重复的唯一值并继续转储操作。我怎么能这么做?
发布于 2014-12-27 13:21:39
我认为这条规则可以帮到你:
CREATE RULE "my_table_on_duplicate_ignore" AS ON INSERT TO "my_table"
WHERE EXISTS(SELECT 1 FROM my_table
WHERE (pk_col_1, pk_col_2)=(NEW.pk_col_1, NEW.pk_col_2))
DO INSTEAD NOTHING;基本上,如果新插入的行已经在表中,则会触发INSTEAD NOTHING。
https://stackoverflow.com/questions/27667581
复制相似问题