UPSERTって・・・

Date:

Share post:

今回はSQL(とEloquent)のお話(私が勉強不足でしたが)を書こうと思います。


一般的なテーブルへのCRUDで使用するSQLといえば

 ・SELECT(検索)

 ・UPDATE(更新)

 ・INSERT(挿入)

 ・DELETE(削除)

が挙げられますが、ある条件でレコードを検索して、存在しない場合は新しくレコードを追加し、存在する場合はそのレコードを更新するというケースがあった場合です。

今までの私は、レコードの取得状態を判定して適宜UPDATEとINSERTを行っておりました・・・。

そこで題名に書いたUPSERTです。

RDBMSにより差異がありますが複数回のSQLを発行せずに、(あれば)レコードの更新、(なければ)レコードの挿入ができます。

最近の業務で携わっているlaravelのEloquentの場合だと

 ・updateOrCreate

というのがあります。便利だなと思いました。

Related articles

フロント担当のTIL 2025/07

「Today I Learned(今日学んだこと)」を記録するTIL、7月は社内のAI活用が本格的に動き出しました。グラボが新しすぎ問題に遭遇したり、巨大なモデルを無理やり動かしてみたり。

Difyでナレッジと検索の両方の結果で回答してほし...

最新情報はナレッジだけでは網羅できな...

ファインチューニング(2)

前回の投稿(ファインチューニング(1...

ファインチューニング(1)

前回の投稿(ラベル画像のエンベディン...