今回はSQL(とEloquent)のお話(私が勉強不足でしたが)を書こうと思います。
一般的なテーブルへのCRUDで使用するSQLといえば
・SELECT(検索)
・UPDATE(更新)
・INSERT(挿入)
・DELETE(削除)
が挙げられますが、ある条件でレコードを検索して、存在しない場合は新しくレコードを追加し、存在する場合はそのレコードを更新するというケースがあった場合です。
今までの私は、レコードの取得状態を判定して適宜UPDATEとINSERTを行っておりました・・・。
そこで題名に書いたUPSERTです。
RDBMSにより差異がありますが複数回のSQLを発行せずに、(あれば)レコードの更新、(なければ)レコードの挿入ができます。
最近の業務で携わっているlaravelのEloquentの場合だと
・updateOrCreate
というのがあります。便利だなと思いました。