[解決済み] キーが重複している場合の更新は、挿入と同じです。
2022-04-20 17:23:44
質問
いろいろ検索してみたのですが、可能かどうかわかりませんでした。
私はこのMySQLクエリを持っています。
INSERT INTO table (id,a,b,c,d,e,f,g) VALUES (1,2,3,4,5,6,7,8)
フィールドidは"unique index"を持っているので、2つ存在することはできません。もし、同じidがすでにデータベースに存在する場合、それを更新したいと思います。しかし、これらのフィールドをすべてもう一度指定する必要があるのでしょうか。
INSERT INTO table (id,a,b,c,d,e,f,g) VALUES (1,2,3,4,5,6,7,8)
ON DUPLICATE KEY UPDATE a=2,b=3,c=4,d=5,e=6,f=7,g=8
または
INSERT INTO table (id,a,b,c,d,e,f,g) VALUES (1,2,3,4,5,6,7,8)
ON DUPLICATE KEY UPDATE a=VALUES(a),b=VALUES(b),c=VALUES(c),d=VALUES(d),e=VALUES(e),f=VALUES(f),g=VALUES(g)
挿入時に既に全て指定しているのですが...。
おまけ:IDを取得するワークアラウンドを使いたい!
id=LAST_INSERT_ID(id)
最も効率的な方法は何か、誰か教えてくれないかな。
どのように解決するのですか?
他に方法はありません。すべてを2回指定しなければなりません。1回目は挿入の場合、2回目は更新の場合です。
関連
-
MySQLとOracleの一括挿入SQLの汎用的な記述例
-
MySQLのselect、distinct、limitの使い方
-
mysqlのデータ圧縮性能比較 詳細
-
MySql認証ベースのvsftpd仮想ユーザー
-
Djangoマイグレーションエラー 外部キー制約を追加できない
-
[解決済み] MySQLテーブルへの挿入または存在する場合の更新
-
[解決済み] "INSERT IGNORE" vs "INSERT ... ON DUPLICATE KEY UPDATE"
-
[解決済み】MySQL ON DUPLICATE KEY UPDATEで1クエリで複数行挿入する場合
-
[解決済み】INSERT ... ON DUPLICATE KEY (何もしない)
-
[解決済み] insert into ... select from ... on duplicate key update (重複キーで更新)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
MySQLのLike演算子に関する詳細
-
面接では選択式で聞かれましたが......。.for updateはテーブルをロックするか、行をロックするか?
-
[解決済み] 親の行を削除または更新できない:外部キー制約が失敗する
-
sql エラーを解決する オペランドには1つの列が含まれている必要があります。
-
群関数解の無効な使用
-
mysql がエラーを報告します。不明な文字セットです。'utf8mb4'
-
[解決済み] 1つのSQLクエリで複数のカウントを取得する方法は?
-
[解決済み] MySQLのAUTO_INCREMENTをリセットする方法
-
[解決済み] ブーリアン値を格納するために使用するMySQLデータ型
-
[解決済み] insert into ... select from ... on duplicate key update (重複キーで更新)