2

Catalyst を使用して Perl Web サイトを構築しています。このサイトでは、ユーザーは処理のために大きな (100,000 行以上) テキスト ファイルをアップロードできます。各行を MySQL データベースの行に変換する必要があります。

チュートリアルで詳しく説明されているように、私は Catalyst の非常に優れDBIC::Schemaたモデルを使用しています。

$c->model('DB::Book')->create({
        title   => $title,
        rating  => $rating,
    });

これにより、適切なデータベースに行が挿入されます。ただし、一度に数万行を挿入するには遅すぎます。このインターフェイスを使用して、1 つのクエリで複数の行を挿入する方法はありますか?

ドキュメントから判断するのは簡単なはずですが、ドキュメントがどこにcreate()あるのかわかりません。

私は明らかなハッシュ参照の配列を試しました:

my @rows = (
    { foo=>1,bar=>2 },
    { foo=>2,bar=>3 }
);

$c->model('DB::MyTable')->create(@rows);

しかし、うまくいきません。最初の行のみを挿入します。

何か案は?

4

1 に答える 1

3

create のドキュメントはDBIx::Class::ResultSet docsにあります。create は単一の行のみを挿入します。一括挿入の場合は、同じクラスからpopulateを使用できます。

于 2013-03-05T10:19:39.113 に答える