Gibt es einen SQL-Befehl, der alle Tabellen in einer Datenbank auflistet und der Provider-unabhängig ist (funktioniert auf MSSQLServer, Oracle, MySQL)?Auflistung aller Tabellen in einer Datenbank
Antwort
Die nächste Option ist die Abfrage der INFORMATION_SCHEMA
für Tabellen.
SELECT *
FROM INFORMATION_SCHEMA.Tables
WHERE table_schema = 'mydatabase';
Die INFORMATION_SCHEMA
ist Teil des Standard-SQL, aber nicht alle Anbieter unterstützen es. Soweit ich weiß, sind die einzigen RDBMS-Anbieter, die es unterstützen, sind:
- MySQL
- PostgreSQL
- Microsoft SQL Server 2000/2005/2008
Einige Marken von Datenbank, z.B. Oracle, IBM DB2, Firebird, Derby usw. haben ähnliche "Katalog" -Ansichten, die Ihnen eine Schnittstelle bieten, über die Sie Metadaten auf dem System abfragen können. Aber die Namen der Ansichten, die Spalten, die sie enthalten, und ihre Beziehungen stimmen nicht mit dem ANSI SQL-Standard für INFORMATION_SCHEMA
überein. Mit anderen Worten, ähnliche Informationen sind verfügbar, aber die Abfrage, die Sie verwenden würden, um diese Informationen zu erhalten, ist anders.
(Fußnote: die Katalogansichten in IBM DB2 UDB für System i unterscheiden sich von den Katalogsichten in IBM DB2 UDB für Windows/* NIX - so viel für die Universal- in UDB)
Einige Andere Marken (zB SQLite) bieten überhaupt keine abfragbare Schnittstelle für Metadaten an.
Nein. Sie alle lieben es, ihren eigenen kleinen Weg zu gehen.
Nein, der SQL-Standard legt nicht fest, wo die Tabellennamen aufgelistet werden (wenn überhaupt), Sie müssen also verschiedene Anweisungen ausführen (normalerweise SELECT
Anweisungen in speziell benannten Tabellen), abhängig von der verwendeten SQL-Engine klarkommen mit.
Wie Bill Karwin richtig vorträgt, INFORMATION_SCHEMA Teil des SQL-92-Standard ist. Einige Anbieter unterstützen dies möglicherweise nicht, aber es gehört zum Standard. –
Wenn Sie einen Nicht-SQL-Ansatz bei der Verwendung von OK sind und Sie haben einen ODBC-Treiber für die Datenbank und es implementiert die SQLTables Entry-Punkt, Sie möglicherweise könnten die gewünschten Informationen erhalten!
pjjH
Details über die API auf: http://msdn.microsoft.com/en-us/library/ms711831.aspx
- 1. Auflistung aller Indizes
- 2. Auflistung aller verfügbaren Systemschriftarten in einer Auswahlbox
- 3. Auflistung aller Freunde
- 4. Liste aller Tabellen in der Datenbank
- 5. Liste aller Tabellen in einer Datenbank mit MySQLi
- 6. Aktualisierung AUTO_INCREMENT Wert aller Tabellen in einer MySQL-Datenbank
- 7. Tabelle mit Prüfsumme aller Tabellen in einer Datenbank erstellen?
- 8. Auflistung aller Objekte einer bestimmten Klasse
- 9. Auflistung aller Ländercodes von Telefonnummern
- 10. Auflistung aller Sammlungen in einer Mongo-Datenbank in einem Nodejs-Skript
- 11. Auflistung aller Inhalte eines Ordners in tfs
- 12. Tabellen Hierarchie in einer Datenbank
- 13. Auflistung aller Muster, die eine Regex entspricht
- 14. Auflistung aller Permutationen einer gegebenen Menge von Werten
- 15. Python: Auflistung aller URLs einer Website ohne Index
- 16. Analysieren aller gespeicherten Prozeduren in einer Datenbank
- 17. SQL-Abfrage zum Auffinden aller Tabellen in einer Datenbank mit einer Spalte mit einem bestimmten Namen
- 18. Auflistung aller installierten Zertifikate auf Android
- 19. SQL Eine Auflistung aller Spaltennamen alphabetisch
- 20. Auflisten aller Datenbanken, aller Tabellen und aller Spalten in einer SQL Server-Instanz
- 21. Genaue Anzahl aller Zeilen in MySQL-Datenbank
- 22. Speichern von HTML-Tabellen in einer Datenbank
- 23. Kopieren Tabellen einer Datenbank in die andere
- 24. MyISAM und InnoDB Tabellen in einer Datenbank
- 25. Max Tabellen in einer MySQL Datenbank
- 26. Wiederherstellen aller möglichen Informationen aus einer beschädigten h2-Datenbank-Datei
- 27. Access Table - Zusammenfassung aller Tabellen
- 28. postgresql - Wie kann ich den ID-Typ aller Tabellen einer vorhandenen Datenbank ändern
- 29. Auswahl aller Tabellen mit bestimmten Spalten
- 30. SQL-Datenbank Join-Tabellen
Ich wollte antworten und sagen "Nein, absolut nicht". Deine Antwort hat mich gerettet. Ich habe heute etwas Neues gelernt :) – wcm
Ich habe Links zu den Dokumenten für INFORMATION_SCHEMA in den entsprechenden RDBMS-Marken hinzugefügt, die es unterstützen. –