Re: ignore errors for COPY

From: Guillaume Lelarge <guillaume(at)lelarge(dot)info>
To: Vangelis Katsikaros <ibob17(at)yahoo(dot)gr>
Cc: pgsql-general(at)postgresql(dot)org
Subject: Re: ignore errors for COPY
Date: 2010-11-11 13:05:15
Message-ID: 4CDBEA0B.1000802@lelarge.info
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Le 11/11/2010 13:01, Vangelis Katsikaros a écrit :
> Hello
>
> I have postrges 8.3.12 and I have the following issue:
>
> I have a table
> create table test(
> table_id integer,
> datetime timestamp,
> MMSI integer,
> lat real,
> lng real,
> );
>
> and I bulk insert data to this table with COPY.
>
> A tiny portion of the data in the file are wrong. For example one date
> is "2009-93-29 05:27:08" which obviously has a wrong month (93). COPY
> encounters this row and stop the insertion with
> ERROR: date/time field value out of range: "2009-93-29 05:27:08"
>
> Is there a way I can "turn" this error into a warning (or suppress the
> error) and make COPY simply to skip this row?
>

Nope.

> I have a big amount of data (~100G) so iterating through them to find
> all the possible wrong timestamp, reals, and integers will be quite
> tedious and time consuming.
>

You should better look at pgloader which will use COPY to put your data
in your table and found the lines in error. Of course, it takes time to
detect lines in error. But at least, all "good" lines will be in your
table, and all "bad" lines will be in a file, so that you can modify
them to inject later.

--
Guillaume
http://www.postgresql.fr
http://dalibo.com

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Vick Khera 2010-11-11 13:17:35 Re: 2PC w/ dblink
Previous Message Vangelis Katsikaros 2010-11-11 12:01:43 ignore errors for COPY