Maison >base de données >tutoriel mysql >Comment obtenir la fonctionnalité IF NOT EXISTS dans SQLite ?
SQLite : Alternative à IF NOT EXISTS
SQLite ne prend pas en charge nativement la syntaxe IF NOT EXISTS, qui est couramment utilisée dans Microsoft SQL Server pour insérer conditionnellement des données dans une table uniquement si elles n’existent pas déjà. Cependant, il existe plusieurs approches alternatives pour obtenir la même fonctionnalité dans SQLite.
1. INSERT OR IGNORE
L'instruction INSERT OR IGNORE demande à SQLite de tenter une insertion dans la table spécifiée, en ignorant toutes les erreurs qui résulteraient de violations de clés en double. Cela crée effectivement une nouvelle ligne si la clé spécifiée n'existe pas et ne fait rien si elle existe déjà.
INSERT OR IGNORE INTO EVENTTYPE (EventTypeName) VALUES ('ANI Received');
2. SELECT...WHERE NOT EXISTS
Cette approche alternative utilise une instruction SELECT pour vérifier l'existence de l'enregistrement avant d'effectuer l'insertion. Si l'instruction SELECT ne renvoie aucune ligne (indiquant que l'enregistrement n'existe pas), l'instruction INSERT est exécutée.
INSERT INTO EVENTTYPE (EventTypeName) SELECT 'ANI Received' WHERE NOT EXISTS (SELECT 1 FROM EVENTTYPE WHERE EventTypeName = 'ANI Received');
Ces deux approches fournissent des alternatives à la syntaxe IF NOT EXISTS et peuvent être utilisées pour insérer conditionnellement données dans une table SQLite uniquement si la clé spécifiée n'existe pas.
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!