Maison >base de données >tutoriel mysql >Comment obtenir la fonctionnalité IF NOT EXISTS dans SQLite ?

Comment obtenir la fonctionnalité IF NOT EXISTS dans SQLite ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-15 16:37:14373parcourir

How to Achieve IF NOT EXISTS Functionality in 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!

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