Heim >Datenbank >MySQL-Tutorial >Wie erreicht man die IF NOT EXISTS-Funktionalität in SQLite?

Wie erreicht man die IF NOT EXISTS-Funktionalität in SQLite?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-15 16:37:14373Durchsuche

How to Achieve IF NOT EXISTS Functionality in SQLite?

SQLite: Alternative zu IF NOT EXISTS

SQLite unterstützt nicht nativ die IF NOT EXISTS-Syntax, die häufig in Microsoft SQL Server verwendet wird um Daten nur dann bedingt in eine Tabelle einzufügen, wenn sie noch nicht vorhanden sind. Es gibt jedoch mehrere alternative Ansätze, um die gleiche Funktionalität in SQLite zu erreichen.

1. INSERT OR IGNORE

Die INSERT OR IGNORE-Anweisung weist SQLite an, eine Einfügung in die angegebene Tabelle zu versuchen und dabei alle Fehler zu ignorieren, die aus Verstößen gegen doppelte Schlüssel resultieren würden. Dadurch wird effektiv eine neue Zeile erstellt, wenn der angegebene Schlüssel nicht vorhanden ist, und es wird nichts unternommen, wenn er bereits vorhanden ist.

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

2. SELECT...WHERE NOT EXISTS

Dieser alternative Ansatz verwendet eine SELECT-Anweisung, um vor dem Einfügen die Existenz des Datensatzes zu prüfen. Wenn die SELECT-Anweisung keine Zeilen zurückgibt (was anzeigt, dass der Datensatz nicht existiert), wird die INSERT-Anweisung ausgeführt.

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

Beide Ansätze bieten Alternativen zur IF NOT EXISTS-Syntax und können zum bedingten Einfügen verwendet werden Daten nur dann in eine SQLite-Tabelle einfügen, wenn der angegebene Schlüssel nicht vorhanden ist.

Das obige ist der detaillierte Inhalt vonWie erreicht man die IF NOT EXISTS-Funktionalität in SQLite?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn