1

シンプルな perl スクリプトを使用して、mysql DB テーブルに何百万もの行を作成しています。スクリプトで perl DBI と DBD::mysql を使用しています。以下のコード例

my $dbh = DBI->connect(<DB INFO>);
my $sth;
my $insert_com = "INSERT INTO TAB1 VALUES(?,?,?,?,?)";
for (1..50000000){

   $sth = $dbh->prepare($insert_com);
   $sth->execute(<val1>,<val2>,<val3>,<val4>,<val5>);

}

上記のコードによると、ループの反復ごとにコミットが送信されると思います。私が持っている質問は、 n 回ごとにコミットを送信できるかどうかです。つまり、テーブルに n 個の行を挿入した後にコミットします。もし可能でしたら、誰か教えてください。前もって感謝します。乾杯 ...

4

1 に答える 1

3

次に、「AutoCommitをゼロに設定する必要があります:

$dbh = DBI->connect($dsn, $user, $password,
                      { RaiseError => 1, AutoCommit => 0 });

n行すべてを呼び出します$dbh->commit()

詳細については、 DBI ドキュメントを参照してください。

于 2014-09-10T09:07:25.740 に答える