[pgsql-jp: 25117] Re: INSERT文に関して

KAWAI,Takanori GCD00051 @ nifty.ne.jp
2002年 3月 7日 (木) 07:01:21 JST


川合孝典です。
#NiftyのWebメールから出したら、違うアドレスになって送信されて
#しまいました。申し訳ありませんでした。

----- Original Message -----
From: "Tadashi Kanbayashi" <Tadashi.Kanbayashi @ toppan.co.jp>
To: <pgsql-jp @ ml.postgresql.jp>
Sent: Wednesday, March 06, 2002 4:40 PM
Subject: [pgsql-jp: 25098] INSERT文に関して


> 神林ともうします。
>
> SQL文に関して質問です。
>
> insert文で、 一度に複数行のデータを書きこむ方法は
> ありますでしょうか。副問い合わせでもなく、COPYコマンドでもなく、
(中略)
> Perl&DBIでプログラムを書いていますが、
> 動的にDBに登録するデータを作成していて
> (配列で保持)、それを今はinsert文をぐるぐるまわして
> 処理しています。なんとか、1文で書けないかと思う次第です。
> そのほうが、パフォーマンスの点でも良いですよね。
> (何回もprepare等する必要ないですし)
(以下略)
とりあえずDBIを使っているのであれば、まずはプレースホルダを
使うほうのが基本でしょう。
my $sth = $dbh->prepare('INSERT INTO tbl VALUES(?, ?)');

$sth->execute('a', 'b');
$sth->execute('c', 'd');
#もちろん配列で繰り返しするとして
それだけでもパフォーマンス的に改善するはず。
#DBD::Pgの場合、特にプレースホルダを見つけるために
#Cで検索してるんですから、使ってあげないのは可哀想(^^?

もっとも大量のデータを入れようとするのであれば
COPYコマンドを使うことを考えたほうがいいかもしれません。

===================================================
川合 孝典 (Hippo2000)
   DBI日本語メーリングリスト管理人、Kansai.pm所属
   kwitknr @ cpan.org GCD00051 @ nifty.ne.jp
   http://member.nifty.ne.jp/hippo2000
   http://www.hippo2000.net/
「Perlを256倍使うための本 DBI編」 3/14発売(^^)
===================================================




pgsql-jp メーリングリストの案内