SQLite ATTACH – Tabellen einer angehängten Datenbank auflisten

So findest du Tabellen in einer per ATTACH eingebundenen SQLite-Datenbank mit sqlite_schema und PRAGMA database_list

Dieser Artikel hat eine Lesedauer von 2 minutes Minuten.

SQLite ATTACH – Tabellen einer angehängten Datenbank auflisten

Mit ATTACH kann SQLite mehrere Datenbankdateien in einer Verbindung öffnen. Tabellen listest du dann über den Schema-Namen der angehängten Datei.

SQLite ATTACH – Tabellen einer angehängten Datenbank auflisten

Viele suchen nach “SQLite ATTACH Tabellen anzeigen” oder “SQLite Tabellen einer angehängten Datenbank auflisten”. Die kurze Antwort lautet: Nutze den Alias aus ATTACH und frage alias.sqlite_schema ab. Der Alias ist der Schema-Name der angehängten Datenbank.

Der Beitrag gehört zur SQLite-Serie SQLite Fragen und Antworten. Sie sammelt kurze Lösungen für typische Fragen aus software-development.

Beispiel

Wenn eine Datenbank als logs angehängt wurde, liest du die Tabellen so aus:

ATTACH DATABASE 'logs.sqlite' AS logs;

SELECT name
FROM logs.sqlite_schema
WHERE type = 'table'
  AND name NOT LIKE 'sqlite_%'
ORDER BY name;

und dann:

PRAGMA database_list;

Praxis-Hinweise

Der wichtige Punkt ist der Schema-Name. Bei der Hauptdatenbank ist das meistens main. Bei temporären Objekten ist es temp. Bei einer mit ATTACH geöffneten Datei verwendest du den selbst vergebenen Alias.

sqlite_schema enthält Tabellen, Views, Indexe und Trigger. Für reine Tabellen filterst du deshalb auf type = "table". Interne SQLite-Tabellen wie sqlite_sequence blendest du meistens aus.

Diese Abfrage ist dann nützlich, wenn ein Script mehrere lokale Datenbanken zusammen auswertet oder eine fremde SQLite-Datei zuerst inspiziert werden soll.

Häufige Stolperstellen

  • Verwechsle den Dateinamen nicht mit dem Alias. Nach AS logs heißt das Schema logs, unabhängig vom Dateinamen.
  • sqlite_master funktioniert in vielen Beispielen noch, sqlite_schema ist aber die modernere Bezeichnung.
  • ATTACH gilt nur für die aktuelle SQLite-Verbindung. Eine zweite Verbindung kennt den Alias nicht automatisch.

Verwandte SQLite-Fragen

Fazit

Für angehängte SQLite-Datenbanken ist der Alias der Schlüssel. Sobald er bekannt ist, funktioniert das Auflisten der Tabellen genauso kontrolliert wie bei der Hauptdatenbank.

Angehängte SQLite-Datenbanken in SQLite Hub prüfen

In SQLite Hub kannst du lokale SQLite-Datenbanken öffnen, Tabellenstrukturen prüfen und SQL-Abfragen direkt testen. Das ist praktisch, wenn du mit ATTACH arbeitest und nachvollziehen möchtest, welche Tabellen zu main, temp oder einer angehängten Datenbank wie logs gehören.

Gerade Abfragen wie PRAGMA database_list oder SELECT name FROM logs.sqlite_schema lassen sich so schneller kontrollieren. Der Schema-Name wird greifbarer, und typische Fehler wie die Verwechslung von Dateiname und Alias fallen früher auf.

FAQ

Wie liste ich Tabellen aus einer per ATTACH geöffneten SQLite-Datenbank?

Frage den Schema-Namen der angehängten Datenbank ab, zum Beispiel SELECT name FROM logs.sqlite_schema WHERE type = "table". Der Name logs kommt aus ATTACH ... AS logs.

Wie finde ich den Alias einer angehängten SQLite-Datenbank?

Mit PRAGMA database_list siehst du alle aktuell verbundenen Datenbanken und ihre Schema-Namen.

Soll ich sqlite_master oder sqlite_schema verwenden?

sqlite_master ist weiterhin verbreitet. Für neue Beispiele ist sqlite_schema die klarere und aktuelle Bezeichnung.

oliverjessner.at als bevorzugte Quelle bei Google hinzufügen

Interesse an einer Zusammenarbeit?


Ob konkrete Anfrage, lose Idee oder erster Austausch: Schreib mir, wenn du denkst, dass wir gut zusammenpassen könnten.



ein iPhone welches einen Anruf von Oliver Jessner zeigt.