SQLite: Überprüfen ob Tabelle existiert
Info von SmartUser | 01.06.2014 um 10:23
Fragestellung: Bevor wir Daten in eine Tabelle schreiben oder aus der Tabelle lesen, möchten wir überprüfen, ob diese Tabelle überhaupt existiert um keinen Fehler zu verursachen.
Lösung: Die Namen der vorhandenen Tabellen stehen in "sqlite_master" und können dort abgefragt werden. Hier ein Beispiel, wie wir das Vorhandensein der Tabelle "tab" überprüfen können.
SELECT name FROM sqlite_master WHERE type='table' AND name='tab';
Ist das Ergebnis dieser Abfrage leer, wissen wir, dass die Tabelle nicht existiert.
Wichtig: Temporäre Tabellen stehen nicht in "sqlite_master", sie befinden sich in "sqlite_temp_master". Sind wir an einer temporären Tabelle interessiert, können wir in der Abfrage oben einfach "sqlite_master" durch "sqlite_temp_master" austauschen.
Alternativer Vorschlag: Für einige Szenarien existieren einfachere Lösungen. Stellen wir uns zum Beispiel vor, dass ein Programm einige Tabellen in einer Datenbank benötigt. Zum Zeitpunkt des Programmstarts ist unklar, ob das Programm schon einmal gestartet wurde und ob die betreffenden Tabellen bereits angelegt sind. Daher möchten wir überprüfen, ob eine bestimmte Tabelle schon existiert und die Tabelle nur dann einlegen, falls nicht.
CREATE TABLE IF NOT EXISTS 'tab' (...);
Für diesen Fall würde sich eher das Statement "CREATE TABLE IF NOT EXISTS" anbieten. Dieses Statement entspricht dem "CREATE TABLE"-Statement, ist aber ergänzt durch "IF NOT EXISTS". Das bedeutet, dass die neue Tabelle nur dann angelegt wird, wenn sie noch nicht existiert. Damit erspart man sich den Umweg, dies zunächst prüfen zu müssen.
Über den Autor
Der Autor hat keine Kurzbeschreibung seines Profils angegeben.
Profil anzeigen
Ähnliche Themen
jQuery: Data Attribut Wert lesen und ändern
Tutorial | 0 Kommentare
MySQL: Daten aus Tabelle löschen - Unterschied zwischen TRUNCATE, DELETE und DROP
Tutorial | 0 Kommentare
HTML5 Canvas als Bild an Server senden und speichern
Tutorial | 0 Kommentare
SQLite: Index über eine oder mehrere Spalten anlegen
Info | 0 Kommentare
Android Programmierung: Response von HTTP POST Request empfangen
Tutorial | 3 Kommentare
jQuery: HTML5 Canvas mit Ajax an Server senden
Tutorial | 0 Kommentare
SQLite: String und Spalten verknüpfen mit SQLite (CONCAT)
Info | 2 Kommentare
Wichtiger Hinweis
Bitte beachten Sie: Die Beiträge auf askingbox.de sind Beiträge von Nutzern und sollen keine professionelle Beratung ersetzen. Sie werden nicht von Unabhängigen geprüft und spiegeln nicht zwingend die Meinung von askingbox.de wieder. Mehr erfahren.
Jetzt mitmachen
Stellen Sie Ihre eigene Frage oder schreiben Sie Ihren eigenen Artikel auf askingbox.de. So gehts.