[解決済み] 私の `INSERT ...' で2行が影響を受けるのはなぜですか?on duplicate key update`?
2022-11-22 20:13:42
質問
をやっているんです。
INSERT ... ON DUPLICATE KEY UPDATE
に対して
PRIMARY KEY
を以下の表に示します。
DESCRIBE users_interests;
+------------+---------------------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------+---------------------------------+------+-----+---------+-------+
| uid | int(11) | NO | PRI | NULL | |
| iid | int(11) | NO | PRI | NULL | |
| preference | enum('like','dislike','ignore') | YES | | NULL | |
+------------+---------------------------------+------+-----+---------+-------+
しかし、これらの値は一意でなければならないにもかかわらず、2行の影響を受けているのがわかります。
INSERT INTO users_interests (uid, iid, preference) VALUES (2, 2, 'like')
ON DUPLICATE KEY UPDATE preference='like';
Query OK, 2 rows affected (0.04 sec)
なぜ、このようなことが起こるのでしょうか?
エディテージ
比較のために、このクエリをご覧ください。
UPDATE users_interests SET preference='like' WHERE uid=2 AND iid=2;
Query OK, 1 row affected (0.44 sec)
Rows matched: 1 Changed: 1 Warnings: 0
どのように解決するのですか?
から マニュアル :
ON DUPLICATE KEY UPDATEでは の場合、1行あたりの影響する行数は1です。 の場合、その行は新しい行として挿入され、2 既存の行が更新された場合。
関連
-
MySQLデータベースでvarchar型の数値の大きさを比較する方法
-
[解決済み】マルチパート識別子をバインドできませんでした。
-
MySQLでテーブルを削除します。親行が削除または更新できません: 外部キー制約に失敗しました。
-
[解決済み] mysqladminのフラッシュホストでブロックを解除する方法
-
[解決済み] MySQLでコマンドラインを使用してSQLファイルをインポートするにはどうすればよいですか?
-
[解決済み] MySQLのAUTO_INCREMENTをリセットする方法
-
[解決済み] MySQLテーブルへの挿入または存在する場合の更新
-
[解決済み] "INSERT IGNORE" vs "INSERT ... ON DUPLICATE KEY UPDATE"
-
[解決済み] SQL ServerにおけるINSERT OR UPDATEに関する解決策
-
[解決済み] INSERT INTO ...」の部分を繰り返さずに複数行の挿入を行うには?
最新
-
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のデータバックアップにmysqldumpを使用する方法
-
MySQLデータベース・インデックスの左端一致の原則
-
MySQL サービスとデータベース管理
-
MySQLインストールチュートリアル(Windows用)詳細
-
MySQLデータベースで数百万件のデータを10秒間で挿入
-
[解決済み] [GROUP BY句に含まれるか、集約関数で使用される必要があります。
-
'INSERT文はFOREIGN KEY制約「FK_TourismReservation_Users」と競合していました。その
-
CMakeエラー。ソースディレクトリ "/xxx/mysql-5.6.21" に CMakeLists.txt がないようです。
-
[解決済み] MySQLのプロセスリストを見つけ、それらのプロセスを終了させる方法は?
-
[解決済み] MySQLでコマンドラインを使用してユーザーアカウントのリストを取得するにはどうすればよいですか?