「UPSERT」を編集中
ナビゲーションに移動
検索に移動
この編集を取り消せます。 下記の差分を確認して、本当に取り消していいか検証してください。よろしければ変更を保存して取り消しを完了してください。
最新版 | 編集中の文章 | ||
1行目: | 1行目: | ||
− | '''UPSERT'''(読み:あっぷさーと)とは、[[SQL]] | + | '''UPSERT'''(読み:あっぷさーと)とは、[[SQL]]において「レコードがなければINSERT、あればUPDATE」という処理のこと指す英語である。 |
== 概要 == | == 概要 == | ||
10行目: | 10行目: | ||
# トランザクション終了 | # トランザクション終了 | ||
+ | == サーバーでの実装 == | ||
ここ最近のデータベースサーバーでは[[SQL]]を独自拡張してUPSERTを1行で書けるようにしているものもある。 | ここ最近のデータベースサーバーでは[[SQL]]を独自拡張してUPSERTを1行で書けるようにしているものもある。 | ||
− | |||
− | |||
− | |||
− | + | === SQL Server === | |
+ | MERGE命令 | ||
− | + | === MySQL === | |
− | + | INSERT ... ON DUPLICATE KEY UPDATE 構文 | |
− | |||
− | |||
− | |||
− | |||
− | + | * https://dev.mysql.com/doc/refman/5.6/ja/insert-on-duplicate.html | |
+ | |||
+ | == ORMでの実装 == | ||
+ | ここ最近のマイクロORMなんかでは、標準でUPSERT命令を搭載し、煩雑な[[ソースコード]]を回避できるようにしているものも多い。ほとんどのものはサーバーがUPSERT系命令を持っていなくても利用できる。 |