7

これを行うために生のSQLを書かずに、単一のクエリでケーキに複数行の挿入を行わせる方法はありますか? saveMany および saveAssociated オプションは、単一のトランザクションで複数の行を保存するだけですが、そのトランザクションには複数の挿入ステートメントが含まれているため、これらのメソッドは明らかに負荷の高いアプリケーションを作成するためのソリューションではありません。

読んでくれてありがとう。

4

5 に答える 5

3

はい

アプリランド コードでこれを行うことは一般的ではありませんが、そうすることで、ほぼすべてのアプリケーション ロジック (検証ルール、動作、イベントなど) を使用する可能性がなくなります。フィクスチャがロードされる方法でこれを行う例を見ることができます:

$db = ConnectionManager::getDataSource('default');

$table = "stuffs";
$fields = array('id', 'name');
$values = array(
    array(1, 'one'),
    array(2, 'two'),
    ...
);

$result = $db->insertMulti($table, $fields, $values);

また、マルチインサートを使用してフィクスチャ ファイルをアプリ データベースにロードするこのリポジトリが(直接またはコードの基礎として) 役立つ場合もあります。

于 2013-06-11T08:42:52.060 に答える