Existenz einer Datenbank-Tabelle feststellen
Hallo, ein Programm soll mit sqlite3 eine Datenbank erstellen bzw., wenn diese bereits erstellt ist, lediglich aktualisieren. Mit welchem Befehl finde ich heraus, ob eine bestimmte Tabelle in einer Datenbank bereits existiert? Oder wie knüpfe ich am einfachsten die Erstellung einer Tabelle an deren Nichtexistenz?
Dass du für so eine triviale Frage nur die Suchmaschine deiner Wahl anwerfen brauchst und einfach den ersten Treffer verwendest. Oder anders ausgedrückt: bevor du eine, dazu noch so einfach zu beantwortende, Frage stellst, solltest du erstmal versuchen sie selber zu lösen.
Das Leben ist wie ein Tennisball.
Wobei man in diesem Fall auch einfach die Dokumentation zu CREATE TABLE hätte konsultieren können.
Du schlägst also "SELECT name FROM sqlite_master WHERE type='table' AND name='table_name';" als Lösung vor. Das ist doch sehr unverständlich und erklärungsbedürftig.EyDu hat geschrieben:Dass du für so eine triviale Frage nur die Suchmaschine deiner Wahl anwerfen brauchst und einfach den ersten Treffer verwendest.
Ich habe versucht es selber zu lösen, und dabei kam eine Fehlermeldung heraus. Ich habe es mit "if not exists" versucht.EyDu hat geschrieben:Oder anders ausgedrückt: bevor du eine, dazu noch so einfach zu beantwortende, Frage stellst, solltest du erstmal versuchen sie selber zu lösen.
@Aries: Das mit dem IF NOT EXISTS wäre aber die normale Lösung für das Problem.
Nach `sqlite_master` kann man in der Dokumentation suchen. Das taucht unter anderem in der Sqlite-FAQ auf in der Antwort der Frage wie man alle Tabellen ermitteln kann, die in einer Datenbank definiert sind.
Nach `sqlite_master` kann man in der Dokumentation suchen. Das taucht unter anderem in der Sqlite-FAQ auf in der Antwort der Frage wie man alle Tabellen ermitteln kann, die in einer Datenbank definiert sind.