Insérer des enregistrements dans SQLite lorsqu'ils n'existent pas : explorer IF NOT EXISTS
Dans MS SQL Server, la clause IF NOT EXISTS est utilisé pour insérer conditionnellement un enregistrement dans une table. Par exemple, l'extrait de code suivant crée un nouvel enregistrement dans la table EVENTTYPE s'il n'existe pas déjà :
IF NOT EXISTS(SELECT 1 FROM EVENTTYPE WHERE EventTypeName = 'ANI Received') INSERT INTO EVENTTYPE (EventTypeName) VALUES ('ANI Received');
Cependant, SQLite ne prend pas en charge nativement la clause IF NOT EXISTS. Par conséquent, les développeurs cherchant à porter cette fonctionnalité sur SQLite peuvent rencontrer des difficultés.
Solutions de contournement SQLite pour les insertions conditionnelles
Malgré l'absence de prise en charge directe IF NOT EXISTS, il existe Il existe plusieurs solutions de contournement disponibles dans SQLite. Une approche courante consiste à utiliser l'instruction INSERT OR IGNORE :
INSERT OR IGNORE INTO EVENTTYPE (EventTypeName) VALUES 'ANI Received'
Cette instruction tente d'insérer un enregistrement dans la table EVENTTYPE, mais elle ne génère pas d'erreur si l'enregistrement existe déjà.
Vous pouvez également utiliser une combinaison d'instructions SELECT et INSERT, comme indiqué ci-dessous :
INSERT INTO EVENTTYPE (EventTypeName) SELECT 'ANI Received' WHERE NOT EXISTS (SELECT 1 FROM EVENTTYPE WHERE EventTypeName = 'ANI Received');
Ce code vérifie d'abord si l'enregistrement est déjà existe à l'aide d'une instruction SELECT. S'il n'existe pas, l'instruction INSERT est exécutée pour ajouter le nouvel enregistrement.
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!