[解決済み】INSERT ... ON DUPLICATE KEY (何もしない)
2022-04-07 06:17:37
質問
2つのカラムにユニークキーを持つテーブルがあります。
CREATE TABLE `xpo`.`user_permanent_gift` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT ,
`fb_user_id` INT UNSIGNED NOT NULL ,
`gift_id` INT UNSIGNED NOT NULL ,
`purchase_timestamp` TIMESTAMP NULL DEFAULT now() ,
PRIMARY KEY (`id`) ,
UNIQUE INDEX `user_gift_UNIQUE` (`fb_user_id` ASC, `gift_id` ASC) );
そのテーブルに行を挿入したいのですが、キーが存在する場合は何もしないように! キーが存在するためにエラーが発生するのは困ります。
次のような構文があることは知っています。
INSERT ... ON DUPLICATE KEY UPDATE ...
のようなものがありますが、どうなんでしょうか。
INSERT ... ON DUPLICATE KEY DO NOTHING
?
解決方法は?
はい、使用します。
INSERT ... ON DUPLICATE KEY UPDATE id=id
(を実行しても、行の更新は行われません。
id
が自分自身に割り当てられている)。
エラー (変換エラー、外部キーエラー) や自動インクリメントのフィールド枯渇 (重複キーにより行が挿入されていなくてもインクリメントされる) を気にしないのであれば
INSERT IGNORE
このように
INSERT IGNORE INTO <table_name> (...) VALUES (...)
関連
-
[解決済み】エラーコード1292 - 不正なDOUBLE値の切り捨て - Mysql
-
[解決済み] Error Dropping Database (Can't rmdir '.test', errno: 17)
-
[解決済み] エラーコードです。1215. 外部キー制約を追加できません (外部キー)
-
[解決済み] エラー 1049 (42000)。不明なデータベース
-
[解決済み] SQLテーブルで重複する値を検索する
-
[解決済み] ...値に挿入する ( SELECT ... FROM ... )
-
[解決済み] MySQLで'insert if not exists'を行うにはどうしたらいいですか?
-
[解決済み] "INSERT IGNORE" vs "INSERT ... ON DUPLICATE KEY UPDATE"
-
[解決済み] SQLite - UPSERT *not* INSERT or REPLACE
-
[解決済み] 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のDESCRIBE [table]に相当するSQLiteはあるか?]
-
コマンドでmysqlに接続中、'mysql'が内部または外部コマンドとして認識されない エラーは解決されました。
-
MySQLとのPython統合でAttributeErrorが発生する: モジュール 'socket' には 'AF_UNIX' という属性がない
-
[解決済み] MySQLにおけるOracleのRowIDに相当する。
-
[解決済み] テーブルのストレージエンジンは修復をサポートしていません。InnoDB または MyISAM?
-
[解決済み] MYSQLのTIMESTAMP比較
-
[解決済み] MySQLクエリ GROUP BY 日/月/年
-
[解決済み] MySQLです。テーブルを作成できません (errno: 150)
-
[解決済み] <TABLE> のテーブルストレージエンジンには、order by クエリでこのオプションがありません (ERROR 1031)。
-
[解決済み] 1行目の列 'id' に不正な整数値 '' があります。