これを行うために生のSQLを書かずに、単一のクエリでケーキに複数行の挿入を行わせる方法はありますか? saveMany および saveAssociated オプションは、単一のトランザクションで複数の行を保存するだけですが、そのトランザクションには複数の挿入ステートメントが含まれているため、これらのメソッドは明らかに負荷の高いアプリケーションを作成するためのソリューションではありません。
読んでくれてありがとう。
これを行うために生のSQLを書かずに、単一のクエリでケーキに複数行の挿入を行わせる方法はありますか? saveMany および saveAssociated オプションは、単一のトランザクションで複数の行を保存するだけですが、そのトランザクションには複数の挿入ステートメントが含まれているため、これらのメソッドは明らかに負荷の高いアプリケーションを作成するためのソリューションではありません。
読んでくれてありがとう。
アプリランド コードでこれを行うことは一般的ではありませんが、そうすることで、ほぼすべてのアプリケーション ロジック (検証ルール、動作、イベントなど) を使用する可能性がなくなります。フィクスチャがロードされる方法でこれを行う例を見ることができます:
$db = ConnectionManager::getDataSource('default');
$table = "stuffs";
$fields = array('id', 'name');
$values = array(
array(1, 'one'),
array(2, 'two'),
...
);
$result = $db->insertMulti($table, $fields, $values);
また、マルチインサートを使用してフィクスチャ ファイルをアプリ データベースにロードするこのリポジトリが(直接またはコードの基礎として) 役立つ場合もあります。