From: | Teodor Sigaev <teodor(at)sigaev(dot)ru> |
---|---|
To: | Kynn Jones <kynnjo(at)gmail(dot)com> |
Cc: | pgsql-general(at)postgresql(dot)org |
Subject: | Re: Bulk inserts within a Perl script? |
Date: | 2006-04-18 23:54:34 |
Message-ID: | 44457C3A.5080305@sigaev.ru |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
$dbi->do("COPY TABLE FROM stdin;");
for(;;) {
$dbi->func( "$idd\t$tid\n", 'putline');
}
$dbi->func("\\.\n", 'putline');
$dbi->func('endcopy');
I don't known what about modern versions of DBI and DBD::Pg,
but it worked at 2001 year :)
Kynn Jones wrote:
> I have a Perl script that is supposed to make a large number of inserts
> in a PostgreSQL database. Performing individual inserts with SQL's
> INSERT command is too slow, however, I can use a "COPY ... from stdin"
> approach that is fast enough. Basically, I fork a psql process (yes,
> I'm on unix) and have the parent write the new records into the child,
> as part of a COPY from stdin command. Admittedly, this is very
> convoluted, but it works.
>
> Well, it almost works. It did in my preliminary tests, but failed in
> the real run with the actual database because the owner of the tables
> that get modified by this COPY statement is a user for which the psql
> command requires a password ( i.e. this user exists solely for the
> purpose of owning the database in question; it does not have a UID, nor
> disk space assigned to it), and I don't know how to give this password
> programmatically.
>
> So I'm back at the drawing board. How can I make fast bulk inserts into
> a PostgreSQL database from within a Perl script?
>
> Thanks!
>
> kj
>
--
Teodor Sigaev E-mail: teodor(at)sigaev(dot)ru
WWW: http://www.sigaev.ru/
From | Date | Subject | |
---|---|---|---|
Next Message | Christopher Browne | 2006-04-19 01:41:19 | Re: PostgreSQL and the OCFS2 filesystem |
Previous Message | Tom Lane | 2006-04-18 23:14:57 | Re: Bulk inserts within a Perl script? |