Einfügen von Datensätzen in SQLite, wenn sie nicht vorhanden sind: Erkunden von IF NOT EXISTS
In MS SQL Server ist die IF NOT EXISTS-Klausel Wird verwendet, um einen Datensatz bedingt in eine Tabelle einzufügen. Der folgende Codeausschnitt erstellt beispielsweise einen neuen Datensatz in der EVENTTYPE-Tabelle, wenn dieser noch nicht vorhanden ist:
IF NOT EXISTS(SELECT 1 FROM EVENTTYPE WHERE EventTypeName = 'ANI Received') INSERT INTO EVENTTYPE (EventTypeName) VALUES ('ANI Received');
SQLite unterstützt jedoch nicht nativ die IF NOT EXISTS-Klausel. Daher können Entwickler, die diese Funktionalität auf SQLite portieren möchten, auf Herausforderungen stoßen.
SQLite-Problemumgehungen für bedingte Einfügungen
Obwohl es keine direkte IF NOT EXISTS-Unterstützung gibt In SQLite sind mehrere Problemumgehungen verfügbar. Ein gängiger Ansatz ist die Verwendung der INSERT OR IGNORE-Anweisung:
INSERT OR IGNORE INTO EVENTTYPE (EventTypeName) VALUES 'ANI Received'
Diese Anweisung versucht, einen Datensatz in die EVENTTYPE-Tabelle einzufügen, löst jedoch keinen Fehler aus, wenn der Datensatz bereits vorhanden ist.
Alternativ können Sie eine Kombination aus SELECT- und INSERT-Anweisungen verwenden, wie unten gezeigt:
INSERT INTO EVENTTYPE (EventTypeName) SELECT 'ANI Received' WHERE NOT EXISTS (SELECT 1 FROM EVENTTYPE WHERE EventTypeName = 'ANI Received');
Dieser Code führt zunächst eine Prüfung durch Mit einer SELECT-Anweisung können Sie feststellen, ob der Datensatz bereits vorhanden ist. Wenn er nicht vorhanden ist, wird die INSERT-Anweisung ausgeführt, um den neuen Datensatz hinzuzufügen.
Das obige ist der detaillierte Inhalt vonWie simuliere ich SQL Servers IF NOT EXISTS in SQLite für bedingte Einfügungen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!