Re: How to implement the skip errors for copy from ?

From: Pavel Stehule <pavel(dot)stehule(at)gmail(dot)com>
To: xbzhang <xbzhang(at)kingbase(dot)com(dot)cn>
Cc: pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: How to implement the skip errors for copy from ?
Date: 2014-06-16 09:54:22
Message-ID: CAFj8pRBgTY+nW+tjmtTZb5an7n55nzV7rpkkkecGzQAeid1ahA@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

2014-06-16 11:46 GMT+02:00 xbzhang <xbzhang(at)kingbase(dot)com(dot)cn>:

>
> I want to implement the skip errors for copy from,lik as :
> create table A (c int primary key);
> copy A from stdin;
> 1
> 1
> 2
> \.
>
> copy will failed:
> ERROR: duplicate key violates primary key constraint "CC_PKEY"
> CONTEXT: COPY CC, line 2: "1"
>
> I want skip the error, and continue to copy the reset of tuple. The result
> will be that there are two rows in table A: 1 and 2.
>
> how to implement that ? Anybody give me some suggestion?
>

you should to reimplement a copy procedure to use a subtransactions. Using
subtransaction for any row is too expensive, but you can do subtransaction
per 1000 rows, and when some exception is raised, then store data per one
row/one subtransaction.

Regards

Pavel Stehule

>
> ------------------------------
>
> 张晓博 研发二部
>
> 北京人大金仓信息技术股份有限公司
>
> 地址:北京市海淀区上地西路八号院上地科技大厦4号楼501
>
> 邮编:100085
>
> 电话:(010) 5885 1118 - 8450
>
> 手机:15311394463
>
> 邮箱:xbzhang(at)kingbase(dot)com(dot)cn
>

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message furuyao 2014-06-16 10:03:26 Re: pg_receivexlog add synchronous mode
Previous Message xbzhang 2014-06-16 09:46:38 How to implement the skip errors for copy from ?