Seite 1 von 1

Existenz einer Datenbank-Tabelle feststellen

Verfasst: Mittwoch 13. November 2013, 15:14
von Aries
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?

Re: Existenz einer Datenbank-Tabelle feststellen

Verfasst: Mittwoch 13. November 2013, 15:16
von EyDu
Ganz einfach: so.

Re: Existenz einer Datenbank-Tabelle feststellen

Verfasst: Mittwoch 13. November 2013, 16:30
von Aries
EyDu hat geschrieben:Ganz einfach: so.
Was meinst Du?

Re: Existenz einer Datenbank-Tabelle feststellen

Verfasst: Mittwoch 13. November 2013, 16:43
von EyDu
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.

Re: Existenz einer Datenbank-Tabelle feststellen

Verfasst: Mittwoch 13. November 2013, 17:00
von BlackJack
Wobei man in diesem Fall auch einfach die Dokumentation zu CREATE TABLE hätte konsultieren können.

Re: Existenz einer Datenbank-Tabelle feststellen

Verfasst: Mittwoch 13. November 2013, 17:12
von Aries
EyDu hat geschrieben:Dass du für so eine triviale Frage nur die Suchmaschine deiner Wahl anwerfen brauchst und einfach den ersten Treffer verwendest.
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:Oder anders ausgedrückt: bevor du eine, dazu noch so einfach zu beantwortende, Frage stellst, solltest du erstmal versuchen sie selber zu lösen.
Ich habe versucht es selber zu lösen, und dabei kam eine Fehlermeldung heraus. Ich habe es mit "if not exists" versucht.

Re: Existenz einer Datenbank-Tabelle feststellen

Verfasst: Mittwoch 13. November 2013, 17:23
von BlackJack
@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.

Re: Existenz einer Datenbank-Tabelle feststellen

Verfasst: Mittwoch 13. November 2013, 18:45
von Aries
BlackJack hat geschrieben:@Aries: Das mit dem IF NOT EXISTS wäre aber die normale Lösung für das Problem.
Ok, ich bin dem nochmal nachgegangen und es sieht so aus, als ob der Fehler eine andere Ursache hätte.