Maison >base de données >tutoriel mysql >Comment insérer des enregistrements dans SQLite uniquement s'ils n'existent pas déjà ?

Comment insérer des enregistrements dans SQLite uniquement s'ils n'existent pas déjà ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-20 10:15:10278parcourir

How to Insert Records into SQLite Only If They Don't Already Exist?

SQLite : insérer des enregistrements uniquement s'ils n'existent pas

Dans SQLite, la syntaxe IF NOT EXISTS utilisée dans Microsoft SQL Server n'est pas directement pris en charge. Cela peut être un défi lorsque vous essayez d'insérer des enregistrements tout en garantissant leur unicité.

Solution de contournement 1 : INSÉRER OU IGNORE

Une solution de contournement consiste à utiliser la commande INSÉRER OU IGNORE. Cette syntaxe permet d'insérer un nouvel enregistrement dans une table, mais si un enregistrement avec la même clé existe déjà, l'insertion sera ignorée. Par exemple :

INSERT OR IGNORE INTO EVENTTYPE (EventTypeName) VALUES 'ANI Received';

Solution 2 : SELECT et INSERT

Une autre approche consiste à utiliser une combinaison d'une instruction SELECT et d'une instruction INSERT :

INSERT INTO EVENTTYPE (EventTypeName)
SELECT 'ANI Received'
WHERE NOT EXISTS (SELECT 1 FROM EVENTTYPE WHERE EventTypeName = 'ANI Received');

Cette syntaxe vérifie si un enregistrement avec le EventTypeName spécifié existe déjà. Si ce n'est pas le cas, l'instruction INSERT est exécutée et un nouvel enregistrement est ajouté à la table.

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!

Déclaration:
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