# SQLite Abfrage, ob in Tabelle X Spalte Y existiert



## grindelaner (16. Feb 2011)

Hallo,

weiß jemand von euch, wie man über SQLite abfragen kann, ob eine Spalte existiert?


----------



## JohannisderKaeufer (17. Feb 2011)

SQLite Frequently Asked Questions

SQLite müßte eine Tabelle sqlite_master enthalten, die die entsprechenden Einträge enthält. Ein entsprechendes select-Statement sollte kein Problem sein.

Die andere Möglichkeit die ich sehe ist ein select-Statement auf die Tabelle und sich dann die Metadaten des Resultsets ausgeben zu lassen.
ResultSet.getMetaData(); und dann mit getColumnName(int n) über alle Spalten iterieren.


----------



## Gast2 (17. Feb 2011)

Versuch Daten in der Spalte zu selektieren und wart auf die Exception


----------



## grindelaner (17. Feb 2011)

jup mit sqlite_master ist das ganz einfach. Einfach das Schema der Tabelle aus der DB herausholen und dann den String mit contains("tabellenName") suchen...

Ist zwar etwas umständlich aber funktioniert....

SQLite ist SCH......


----------



## JohannisderKaeufer (17. Feb 2011)

Das sollte allerdings auch mit einem einzigen Statement gehen



```
select * 
  from sqlite_master 
  where type='table' 
  and tbl_name = 'TABELLENNAME' 
  and sql like '%SPALTENNAME SPALTENTYP%'
```

Hier muß nur geschaut werden ob das Ergebnis eine oder keine Zeile zurückliefert. 

Den SPALTENTYP kann man auch weglassen, wenn man sicher sein kann, das der Spaltenname, nicht irgendwie anders enthalten ist.


----------

