Re: Bulk inserts within a Perl script?
От | Teodor Sigaev |
---|---|
Тема | Re: Bulk inserts within a Perl script? |
Дата | |
Msg-id | 44457C3A.5080305@sigaev.ru обсуждение исходный текст |
Ответ на | Bulk inserts within a Perl script? ("Kynn Jones" <kynnjo@gmail.com>) |
Ответы |
Re: Bulk inserts within a Perl script?
|
Список | 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@sigaev.ru WWW: http://www.sigaev.ru/
В списке pgsql-general по дате отправления: