[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 メーリングリストの案内