テーブル名を取得するためのクロスデータベース SQL クエリ
さまざまなデータベース システムと対話するアプリケーションを構築するには、データを取得するための一貫した方法が必要です。 この記事では、SQL を使用して特定のデータベースからテーブル名を取得し、さまざまなサーバー タイプ間での互換性を確保するという課題について説明します。 INFORMATION_SCHEMA.TABLES
ビューは一見普遍的なアプローチを提供しますが、データベース間でスキーマ処理が異なるため調整が必要です。
INFORMATION_SCHEMA.TABLES
をクエリする単純なアプローチでは、誤ってすべてのデータベースからテーブルが返される可能性があります。 結果を単一のデータベースに制限するには、データベース固有の変更が必要です。
SQL サーバー:
<code class="language-sql">SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE = 'BASE TABLE' AND TABLE_CATALOG = 'dbName'</code>
'dbName'
を実際のデータベース名に置き換えます。
MySQL:
<code class="language-sql">SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE = 'BASE TABLE' AND TABLE_SCHEMA = 'dbName'</code>
再度、'dbName'
をターゲット データベース名に置き換えます。
オラクル:
Oracle のアプローチは少し異なります。通常は DBA_TABLES
ビューが使用されます。 正確なクエリは権限によって異なる場合がありますが、一般的なアプローチは次のとおりです。
<code class="language-sql">SELECT table_name FROM dba_tables WHERE owner = 'dbName'</code>
ここで、'dbName'
はデータベース所有者またはスキーマ名を表します。 DBA_TABLES
.
これらのデータベース固有の調整を採用することで、基盤となるデータベース システムに関係なく、指定されたデータベースからテーブル名を取得できる堅牢なアプリケーションを作成できます。 これにより、一貫した機能が確保され、多様な環境間でのデータベースの対話が簡素化されます。
以上が異なる種類のサーバー間で SQL を使用して特定のデータベースからテーブル名を一貫して取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。