0

INSERT ON DUPLICATE KEY UPDATE1 回のトランザクションで多くの行をデータベースに定期的に送信する必要があるアプリケーションに使用することを検討しています。しかし、私は1つのことに関して少し混乱しています。オンラインの使用例は、この機能のバリエーションが多いようです。

私が探している動作は、一意のインデックスにまだ存在しない場合は行を挿入したいということですが、存在する場合は単に ID を返し、何も更新したくないということです。これがこのステートメントの意図された機能であると仮定するのは正しいですか。

また、多くの例で示唆されているように、この機能を利用するためにテーブルにダミー フィールドを作成したくありません。私の意見では、それは単なる悪い習慣です。

どんなアドバイスでも大歓迎です。以下は、私が望むものに近いものを示すmysqlのWebサイトの例ですが、c = 3の部分は説明されていません。last_insert_id を実際に機能させるためにこれが必要なのか、それとも彼らの例の一部にすぎないのか疑問に思っています。last_insert_id 部分の後にダミー操作がないと、last_insert_id が機能しないことを読みました。

INSERT INTO table (a,b,c) VALUES (1,2,3)
  ON DUPLICATE KEY UPDATE id=LAST_INSERT_ID(id), c=3;
4

2 に答える 2