ホームページ >データベース >mysql チュートリアル >SQLite で MySQL の ON DUPLICATE KEY UPDATE をシミュレートする方法は?

SQLite で MySQL の ON DUPLICATE KEY UPDATE をシミュレートする方法は?

Patricia Arquette
Patricia Arquetteオリジナル
2025-01-15 13:57:55800ブラウズ

How to Simulate MySQL's ON DUPLICATE KEY UPDATE in SQLite?

SQLite での「ON DUPLICATE KEY UPDATE」の実装

MySQL の「ON DUPLICATE KEY UPDATE」機能を使用すると、単一のクエリを使用して、一意のキー制約の存在に基づいて行を挿入または更新できます。 SQLite では、この機能はネイティブでは利用できません。

「UPSERT」操作を実装する別の方法

SQLite で同じ効果を実現するには、主に 2 つの方法があります:

  1. SELECT (INSERT または UPDATE): まず、更新する行を選択します。存在する場合は UPDATE クエリを実行し、存在しない場合は INSERT クエリを実行します。
  2. UPDATE (UPDATE が失敗した場合は INSERT) : このメソッドは最初に行の更新を試みます。更新が失敗した場合 (行が存在しないことを示した場合)、INSERT クエリが実行されます。

推奨方法

推奨される方法は、特定の使用例によって異なります。キー列に一意制約を適用する場合は、次のクエリを使用できます:

<code class="language-sql">INSERT OR IGNORE INTO visits VALUES ($ip, 0);
UPDATE visits SET hits = hits + 1 WHERE ip LIKE $ip;</code>

この組み合わせにより、操作が単一のアトミック操作として実行され、データの整合性が維持されます。

別の解決策

検討に値する別の効果的なソリューションは、次の場所にあります: https://www.php.cn/link/21648c94be6e9adf691ebc249fa6689c

以上がSQLite で MySQL の ON DUPLICATE KEY UPDATE をシミュレートする方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。