2012-07-30 17 views
3

我希望能夠在列中搜索Informix數據庫。在主表中有一個cust_nbr列,然後在未知數量的表中引用。如何在列中搜索informix數據庫

在Informix中,有沒有辦法查詢數據庫並獲取所有使用cust_nbr的表?

回答

4
SELECT tabname, colno, colname 
FROM systables a, syscolumns b 
WHERE a.tabid = b.tabid 
and colname = "cust_nbr" 
ORDER BY colno; 

我發現在同一個地方的代碼,並與colname的= cust_nbr添加的額外restriant。

這似乎對我有用。我會驗證它,但所有跡象看起來像它的工作。

我發現,在其他文章中提到的Using the Informix Catalogs

0

您應該能夠從system catalog tables,sysreferences中獲得這種類型的東西。從Using the Informix System Catalog採取:

SELECT a.tabname, constrname, d.tabname 
    FROM systables a, sysconstraints b, sysreferences c, 
     systables d 
WHERE b.constrtype = 'R' 
    AND a.tabid = b.tabid 
    AND b.constrid = c.constrid 
    AND c.ptabid = d.tabid 
    AND a.tabname = ?; 
+0

所以我一直在尋找的文件,當你張貼了這個。我在哪裏把欄「cust_nbr」? – zach 2012-07-30 13:50:48

+0

通過一些艱苦的工作,可以識別包含給定列名的外鍵(這可能是兩個表上兩個16部分索引中的每一個的第16列;這是艱鉅的工作!),但它是間接的,並不是列名的所有用途都需要處於這樣的限制。 SysTables和SysColumns的直接選擇要簡單得多。 – 2012-07-31 17:17:23