Ich möchte eine Liste von Spalten in einer Tabelle abrufen. Die Datenbank ist die neueste Version von SQLite (3.6, glaube ich). Ich suche nach Code, der dies mit einer SQL-Abfrage tut. Zusätzliche Bonuspunkte für Metadaten in Bezug auf die Spalten (z. B. Länge, Datentyp usw.)
reflection
sqlite
list
AngryHacker
quelle
quelle
select * from
?Hier ist der einfache Weg:
quelle
Die Frage ist alt, aber das Folgende wurde noch nicht erwähnt.
Eine andere bequeme Möglichkeit in vielen Fällen ist das Aktivieren von Headern durch:
Dann,
zeigt eine Überschrift mit allen ausgewählten Feldern (alle, wenn Sie SELECT * auswählen) oben in der Ausgabe an.
quelle
LIMIT 5
. Vergessen Sie das;
am Ende nicht.Gehen Sie einfach in Ihre SQLite-Shell:
und dann einfach schlagen
und du wirst alles bekommen.
quelle
Hier ist eine SELECT-Anweisung, die alle Tabellen und Spalten in der aktuellen Datenbank auflistet:
quelle
ORDER BY
zutableName, p.cid
.Dies ist eine Abfrage, die alle Tabellen mit ihren Spalten und alle Metadaten auflistet, die ich zu jeder Spalte erhalten konnte, wenn OP angefordert wurde (als Bonuspunkte).
Vielen Dank an @David Garoutte, der mir gezeigt hat, wie ich
pragma_table_info
in einer Abfrage arbeiten kann.Führen Sie diese Abfrage aus, um alle Tabellenmetadaten anzuzeigen:
quelle
Aufbauend auf dem oben Gesagten können Sie alles auf einmal tun:
Dadurch erhalten Sie die SQL zum Erstellen der Tabelle, bei der es sich effektiv um eine Liste der Spalten handelt.
quelle
Ich weiß, es ist lange her, aber es ist nie zu spät ... Ich hatte eine ähnliche Frage mit TCL als Dolmetscher und fand nach mehreren Suchen nichts Gutes für mich. Also schlage ich etwas vor, das auf PRAGMA basiert, da ich weiß, dass Ihre Datenbank "main" ist.
Und Array verwenden, um eine Liste zu erhalten
quelle