我希望能够在 Informix DB 中搜索列。在主表中有一个 cust_nbr 列,然后在未知数量的表中引用该列。
在 Informix 中,有没有办法查询数据库并获取所有使用 cust_nbr 的表?
SELECT tabname, colno, colname
FROM systables a, syscolumns b
WHERE a.tabid = b.tabid
and colname = "cust_nbr"
ORDER BY colno;
我在同一个地方找到了这段代码,并用 colname = cust_nbr 添加了额外的限制。
这似乎对我有用。我会验证它,但所有迹象看起来都有效。
我发现在另一篇文章中提到的使用 Informix 目录中
特别是,您应该能够从系统目录表中获得这种类型的东西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 = ?;