Re: copy command - date - Mailing list pgsql-general

From Paul Lambert
Subject Re: copy command - date
Date
Msg-id 46BFBF69.5010601@autoledgers.com.au
Whole thread Raw
In response to Re: copy command - date  (Paul Lambert <paul.lambert@autoledgers.com.au>)
Responses Re: copy command - date  (novice <user.postgresql@gmail.com>)
Re: copy command - date  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-general
Paul Lambert wrote:
> novice wrote:
>> I'm using pg version 8.2.4.  What is the best method to load this data?
>> I have just a little over 55,000 entries.
>>
>> db5=>  \copy maintenance FROM test.txt
>> ERROR:  invalid input syntax for integer: "3665   OK           SM
>> 07/07/13 06:09"
>> CONTEXT:  COPY maintenance, line 1, column maintenance_id: "3665   OK
>>          SM 07/07/13 06:09"
>>
>
> That's not complaining about the date, that is complaining that your
> input file does not contain the maintenance_id column.
>

I don't think copy allows you to leave columns out of your input file -
even if they belong to a sequence.

You could try something like:

-- Create a temp table with everything but the sequence column.
CREATE TABLE maintenance_load AS
    SELECT meter_id,status,inspector,inspection_date
    FROM maintenance
    WHERE 1=0;

-- Copy data from file into temp table.
COPY maintenance_load FROM 'd:/temp/file.txt';

-- Insert data from temp table into main table, which will
-- generate the value for the sequence field.
INSERT INTO maintenance (meter_id,status,inspector,inspection_date)
    (SELECT * from maintenance_load);

-- Drop temp table.
DROP TABLE maintenance_load;

Also, not sure if it was your mail client or not, but the data you have
supplied was space-separated, you probably want to make sure the actual
data file is tab-separated, otherwise it's going to think it's all part
of one field.


--
Paul Lambert
Database Administrator
AutoLedgers


pgsql-general by date:

Previous
From: Michael Glaesemann
Date:
Subject: Re: copy command - date
Next
From: novice
Date:
Subject: Re: copy command - date