猫とコード

化学メーカーでweb開発している猫大好きエンジニアの備忘録です。

ODBC/JDBCを使ってテーブル定義を取得する(Vertica/MySQL/SQL Server)

ODBC/JDBCを介してテーブル定義を取得したい.

Vertica

\d schema_name.table_name

で出力可能だがODBCで使えないためv_catalog.columnsからSELECTする.

SELECT * FROM   v_catalog.columns WHERE  table_schema='schema_name'  AND table_name='table_name' ORDER  BY ordinal_position;

参考 https://stackoverflow.com/questions/26398989/vertica-describe-table

MySQL

SHOWコマンドはODBC経由で実行できる.

SHOW FULL COLUMNS FROM schema_name.table_name

参考 MySQLでテーブル定義を調べる方法 - Qiita

SQLServer

EXEC コマンドは通るようだが,期待した列リストが得られなかったので,sys.tablesから取得した.

SELECT s.name as schema_name, t.name as table_name, c.* FROM sys.columns AS c
INNER JOIN sys.tables AS t ON t.object_id = c.object_id
INNER JOIN sys.schemas AS s ON s.schema_id = t.schema_id
WHERE t.name = 'mytable' AND s.name = 'dbo';

参考 テーブルの定義の表示 - SQL Server | Microsoft Learn