Éviter les insertions en double dans SQLite
SQLite, un moteur de base de données léger et populaire, ne prend pas en charge explicitement la clause IF NOT EXISTS que l'on trouve couramment dans d'autres Implémentations SQL. Cet obstacle peut rendre perplexes les développeurs habitués à exploiter de telles fonctionnalités pour empêcher les insertions d'enregistrements en double.
Pour contourner cette limitation, SQLite propose plusieurs solutions de contournement. Une approche consiste à utiliser la commande INSERT OR IGNORE :
INSERT OR IGNORE INTO EVENTTYPE (EventTypeName) VALUES ('ANI Received');
Cette commande insérera un nouvel enregistrement si le EventTypeName spécifié n'existe pas déjà dans la table EVENTTYPE.
Une autre option consiste à employer une sous-requête dans l'instruction INSERT :
INSERT INTO EVENTTYPE (EventTypeName) SELECT 'ANI Received' WHERE NOT EXISTS (SELECT 1 FROM EVENTTYPE WHERE EventTypeName = 'ANI Received');
Cette approche vérifie l'existence de l'enregistrement avant de l'insérer, obtenant ainsi le même résultat résultat comme la clause IF NOT EXISTS.
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!