Metadata
如何編寫查詢以查找數據庫中具有特定列名的所有表
我有一個包含大約 100 個表的數據庫,我需要建構一個連接查詢以從其中兩個表中獲取特定數據。我知道一個,但不知道另一個。基本上我需要類似的東西:
select <tables> from <database> where exists table.column name;
我怎樣才能做到這一點?
使用
information_schema
這是符合標準的跨 RDBMS 方法。
SELECT table_catalog, table_schema, table_name, column_name FROM INFORMATION_SCHEMA.columns WHERE column_name = '<your column name>';
你可以看到這個記錄
對於 IBM DB2,您將使用以下內容:
select tabschema,tabname from syscat.columns where colname = 'COLUMN_NAME'
請注意,在 DB2 中,列名將大寫**,除非它們是在雙引號內定義的,而不是大寫的。然後,您還必須提供列名的確切大小寫。**