エントリーの編集

エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
Sequelでレコードがあれば更新なければ挿入するUPSERTを実装 -- ぺけみさお
記事へのコメント0件
- 注目コメント
- 新着コメント
このエントリーにコメントしてみましょう。
注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています

- バナー広告なし
- ミュート機能あり
- ダークモード搭載
関連記事
Sequelでレコードがあれば更新なければ挿入するUPSERTを実装 -- ぺけみさお
レコードがあれば更新を行い、なければ挿入を行いたい。 そのようなケースはデータベースを使っていると... レコードがあれば更新を行い、なければ挿入を行いたい。 そのようなケースはデータベースを使っているとしばしば存在する。 このような処理はINSERTとUPDATEを合わせてUPSERTと呼ばれる。 DBMSの中には、UPSERTを1ステートメントで行える機能を持つものがある。 MySQLやSQLiteのREPLACE構文がそれである。 しかしREPLACE構文は標準化されていないので、DBMS依存のプログラムとなり使い勝手が悪い。 またSequelはREPLACE構文をサポートしていない。 本エントリではDBMSに依らずに使用できる擬似的なUPSERTをSequelのプログラムで実装する。 以下がプログラムで実装した擬似的なUPSERTの例だ。 Sequelで実行されるSQLはコメントで併記した。 require 'sequel' DB = Sequel.sqlite DB.create_t