Cake で INSERT INTO の代わりに REPLACE INTO を使用するにはどうすればよいですか? データベースにデータを保存するアクションがありますが、エントリを重複させたくありません。主キー (id) は一意です。値が既に存在する場合、新しい行として入力したくありません。
保存されるデータも動的に生成されるため、エラーで終了することは適切ではありません。
EDIT最初に、保存しているデータは単一の大きな配列にあります
$data = Array([0] => 'value1', [1] => 'value2', [2] => 'value3') etc
この配列をループして、各値を新しいレコードとして保存しようとしています
foreach ($data as $value) {
$save_data['Model'] = array('field' => $value);
}
Classregistry::init('Model')->saveAll($save_data);
データを別のモデルに保存しているため、Classregistry を使用しています。現在、「フィールド」は一意のインデックスであるため、重複するレコードを挿入しようとすると、このコードは失敗します。CakePHP を使用する前は、問題なく REPLACE INTO 構文を使用していました。私はケーキで似たようなことを達成したいと思います。
現時点での唯一の回避策は、重複を入力できるようにし、それらをグループ化して一意の行のみを表示することです。