タグ

saveに関するihiro81のブックマーク (1)

  • CakePHP Model#save()のSELECT文を抑制する

    Model#save()でUPDATE文が発行される際は、まず該当ID(primary key)がDBに存在するかを確認するSELECT文が発行されて、存在すればUPDATE文が発行されます。 1レコードだけを更新するなら特に気にする必要は無いのですが、大量のレコードを逐次UPDATEする際はこのSELECT文を抑制したくなります。 そこでこのSELECT文を抑制する方法を調べてみました。 1. Model#$__exitstsにtrueを入れる ちょっと強引な方法ですが、save()を実行する直前でModel#$__exitstsにtrueを入れると、SELECT文が発行されません。 Model#$__exitstsはsave()実行後、nullにリセットされるので元の値を戻す必要はありません。 // FooがModel $this->Foo->__exists = true; $thi

  • 1