Heim > Datenbank > MySQL-Tutorial > Wie simuliere ich MySQLs ON DUPLICATE KEY UPDATE in SQLite?

Wie simuliere ich MySQLs ON DUPLICATE KEY UPDATE in SQLite?

Patricia Arquette
Freigeben: 2025-01-15 13:57:55
Original
799 Leute haben es durchsucht

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

Implementierung von „ON DUPLICATE KEY UPDATE“ in SQLite

Die MySQL-Funktion „ON DUPLICATE KEY UPDATE“ ermöglicht die Verwendung einer einzigen Abfrage zum Einfügen oder Aktualisieren von Zeilen basierend auf dem Vorhandensein einer eindeutigen Schlüsselbeschränkung. In SQLite ist diese Funktionalität nicht nativ verfügbar.

Alternative Möglichkeit zur Implementierung des „UPSERT“-Vorgangs

Es gibt zwei Hauptmethoden, um in SQLite den gleichen Effekt zu erzielen:

  1. SELECT (INSERT oder UPDATE): Dadurch werden zunächst die zu aktualisierenden Zeilen ausgewählt. Wenn es vorhanden ist, führen Sie eine UPDATE-Abfrage aus. Andernfalls führen Sie eine INSERT-Abfrage aus.
  2. UPDATE (INSERT, wenn UPDATE fehlschlägt) : Diese Methode versucht zunächst, die Zeile zu aktualisieren. Wenn die Aktualisierung fehlschlägt (was darauf hinweist, dass die Zeile nicht vorhanden ist), wird eine INSERT-Abfrage ausgeführt.

Bevorzugte Methode

Die bevorzugte Methode hängt vom jeweiligen Anwendungsfall ab. Um eine eindeutige Einschränkung für die Schlüsselspalte zu erzwingen, können Sie die folgende Abfrage verwenden:

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

Diese Kombination stellt sicher, dass die Operation als einzelne atomare Operation ausgeführt wird, wodurch die Datenintegrität gewahrt bleibt.

Eine andere Lösung

Eine weitere effektive Lösung, die eine Überlegung wert ist, finden Sie unter: https://www.php.cn/link/21648c94be6e9adf691ebc249fa6689c

Das obige ist der detaillierte Inhalt vonWie simuliere ich MySQLs ON DUPLICATE KEY UPDATE in SQLite?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage