Maison > base de données > tutoriel mysql > Comment simuler la MISE À JOUR DE CLÉ EN DUPLICATE de MySQL dans SQLite ?

Comment simuler la MISE À JOUR DE CLÉ EN DUPLICATE de MySQL dans SQLite ?

Patricia Arquette
Libérer: 2025-01-15 13:57:55
original
800 Les gens l'ont consulté

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

Implémentation de "ON DUPLICATE KEY UPDATE" dans SQLite

La fonctionnalité "ON DUPLICATE KEY UPDATE" de MySQL permet d'utiliser une seule requête pour insérer ou mettre à jour des lignes en fonction de la présence d'une contrainte de clé unique. Dans SQLite, cette fonctionnalité n'est pas disponible nativement.

Manière alternative d'implémenter l'opération "UPSERT"

Il existe deux manières principales d'obtenir le même effet dans SQLite :

  1. SELECT (INSERT ou UPDATE) : Ceci sélectionne d'abord les lignes à mettre à jour. S'il existe, exécutez une requête UPDATE ; sinon, exécutez une requête INSERT.
  2. UPDATE (INSÉRER si UPDATE échoue)  : Cette méthode tente d'abord de mettre à jour la ligne. Si la mise à jour échoue (indiquant que la ligne n'existe pas), une requête INSERT est exécutée.

Méthode préférée

La méthode préférée dépend du cas d'utilisation spécifique. Dans le cas de l'application d'une contrainte unique sur la colonne clé, vous pouvez utiliser la requête suivante :

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

Cette combinaison garantit que l'opération est exécutée comme une seule opération atomique, préservant ainsi l'intégrité des données.

Une autre solution

Une autre solution efficace à considérer peut être trouvée sur : https://www.php.cn/link/21648c94be6e9adf691ebc249fa6689c

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal