フィールド名一覧が欲しい
MySQLで、データベース名とテーブル名指定してフィールド情報を取得するには、次のSQLでいいのかな?
SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_CATALOG = 'def' AND TABLE_SCHEMA = 'database_name' AND TABLE_NAME = 'table_name' ORDER BY ORDINAL_POSITION ;
メタ情報はINFORMATION_SCHEMAっていう名前のデータベースが保持していて、フィールド情報はその中のCOLUMNSっていう名前のテーブルが持っているらしい。
TABLE_CATALOGって何を意味するんだろう?COLUMNSの内容から、僕が勝手にTABLE_SCHEMAがデータベース名、TABLE_NAMEがテーブル名だと判断したけどそれでいいのかな。なんか他にもTABLE_TYPEとかいっぱいあるね。ORDINAL_POSITIONでORDER BYしてあげると、列の順番そのまま取ってこれるみたいだね。
この仕組みは他のDBMSでも同じなのかなー?