Datenbankübergreifende SQL-Abfrage zum Abrufen von Tabellennamen
Das Erstellen von Anwendungen, die mit verschiedenen Datenbanksystemen interagieren, erfordert eine konsistente Methode zum Abrufen von Daten. In diesem Artikel geht es um die Herausforderung beim Abrufen von Tabellennamen aus einer bestimmten Datenbank mithilfe von SQL, um die Kompatibilität zwischen verschiedenen Servertypen sicherzustellen. Während die INFORMATION_SCHEMA.TABLES
-Ansicht einen scheinbar universellen Ansatz bietet, erfordern Unterschiede in der Schemaverarbeitung in verschiedenen Datenbanken Anpassungen.
Der naive Ansatz der Abfrage INFORMATION_SCHEMA.TABLES
könnte versehentlich Tabellen aus allen Datenbanken zurückgeben. Um die Ergebnisse auf eine einzelne Datenbank zu beschränken, sind datenbankspezifische Modifikationen erforderlich.
SQL Server:
<code class="language-sql">SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE = 'BASE TABLE' AND TABLE_CATALOG = 'dbName'</code>
Ersetzen Sie 'dbName'
durch den tatsächlichen Datenbanknamen.
MySQL:
<code class="language-sql">SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE = 'BASE TABLE' AND TABLE_SCHEMA = 'dbName'</code>
Ersetzen Sie erneut 'dbName'
durch den Namen Ihrer Zieldatenbank.
Orakel:
Der Ansatz von Oracle unterscheidet sich geringfügig; Typischerweise wird die DBA_TABLES
-Ansicht verwendet. Die genaue Abfrage kann je nach Berechtigungen variieren, ein gängiger Ansatz ist jedoch:
<code class="language-sql">SELECT table_name FROM dba_tables WHERE owner = 'dbName'</code>
Hier steht 'dbName'
für den Datenbankeigentümer oder den Schemanamen. Beachten Sie, dass für den Zugriff auf DBA_TABLES
.
Durch die Verwendung dieser datenbankspezifischen Anpassungen können Sie robuste Anwendungen erstellen, die in der Lage sind, Tabellennamen aus einer bestimmten Datenbank abzurufen, unabhängig vom zugrunde liegenden Datenbanksystem. Dies stellt eine konsistente Funktionalität sicher und vereinfacht die Datenbankinteraktion in verschiedenen Umgebungen.
Das obige ist der detaillierte Inhalt vonWie kann ich mit SQL konsistent Tabellennamen aus einer bestimmten Datenbank über verschiedene Servertypen hinweg abrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!