[解決済み] insert into ... select from ... on duplicate key update (重複キーで更新)
2022-06-21 03:21:46
質問
挿入クエリを実行していますが、ユニークキーがすでに存在している場合、多くのカラムのほとんどが新しい値に更新される必要があります。それは次のようなものです。
INSERT INTO lee(exp_id, created_by,
location, animal,
starttime, endtime, entct,
inact, inadur, inadist,
smlct, smldur, smldist,
larct, lardur, lardist,
emptyct, emptydur)
SELECT id, uid, t.location, t.animal, t.starttime, t.endtime, t.entct,
t.inact, t.inadur, t.inadist,
t.smlct, t.smldur, t.smldist,
t.larct, t.lardur, t.lardist,
t.emptyct, t.emptydur
FROM tmp t WHERE uid=x
ON DUPLICATE KEY UPDATE ...;
//update all fields to values from SELECT,
// except for exp_id, created_by, location, animal,
// starttime, endtime
の構文がよくわかりません。
UPDATE
句の構文がよくわかりません。現在の行を
SELECT
節から現在の行を参照するにはどうしたらよいでしょうか。
どのように解決するのですか?
MySQL は、equals の前の部分が INSERT INTO 句で指定されたカラムを参照し、2 番目の部分が SELECT カラムを参照するものと見なします。
INSERT INTO lee(exp_id, created_by, location, animal, starttime, endtime, entct,
inact, inadur, inadist,
smlct, smldur, smldist,
larct, lardur, lardist,
emptyct, emptydur)
SELECT id, uid, t.location, t.animal, t.starttime, t.endtime, t.entct,
t.inact, t.inadur, t.inadist,
t.smlct, t.smldur, t.smldist,
t.larct, t.lardur, t.lardist,
t.emptyct, t.emptydur
FROM tmp t WHERE uid=x
ON DUPLICATE KEY UPDATE entct=t.entct, inact=t.inact, ...
関連
-
ジョイントインデックスのためのmysqlの条件とインデックスが失敗するための条件
-
MySQLとOracleの一括挿入SQLの汎用的な記述例
-
MySQLインストールチュートリアル(Linux版
-
sql エラーを解決する オペランドには1つの列が含まれている必要があります。
-
SQLException。オペランドは1列でなければなりません。
-
[解決済み] 1つのSQLクエリで複数のカウントを取得する方法は?
-
[解決済み] MySQLでdatetimeとtimestampのどちらのデータ型を使用すべきですか?
-
[解決済み] MySQLテーブルへの挿入または存在する場合の更新
-
[解決済み] "INSERT IGNORE" vs "INSERT ... ON DUPLICATE KEY UPDATE"
-
[解決済み】PostgreSQLでUPSERT(MERGE、INSERT ... ON DUPLICATE 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 実装 サイバーパンク風ボタン
おすすめ
-
SQL集計、グループ化、ソート
-
面接では選択式で聞かれましたが......。.for updateはテーブルをロックするか、行をロックするか?
-
MySQLインストールチュートリアル(Linux版
-
MySQL XAが分散型トランザクションを実装する方法を1記事にまとめました。
-
sql エラーを解決する オペランドには1つの列が含まれている必要があります。
-
SQLステートメントエラーです。オペランドには 1 つのカラムを含める必要があります [括弧を追加せずに複数のフィールドをクエリする
-
MySQLの起動エラー:ERROR 2003 (HY000)。localhost'上のMySQLサーバーに接続できない(10061)
-
[解決済み] Mysqlでidを使用してテーブルから多くの行を削除する
-
[解決済み] MySQLでコマンドラインを使用してユーザーアカウントのリストを取得するにはどうすればよいですか?
-
[解決済み] キーが重複している場合の更新は、挿入と同じです。