如何在 Teradata 数据库中查找所有具有特定列名的表?
Posted
技术标签:
【中文标题】如何在 Teradata 数据库中查找所有具有特定列名的表?【英文标题】:How to find all the tables in database Teradata with specific column names in them? 【发布时间】:2015-04-03 18:48:47 【问题描述】:我有 2-3 个不同的列名,我想在整个数据库中查找并列出所有包含这些列的表。有什么简单的查询吗?
我见过solution for mysql,在这里不起作用,因为据我所知TD没有方案,但我找到了this。
并尝试了这段代码:
SELECT TableName
FROM DBC.COLUMNS
WHERE DatabaseName = 'DB_NAME' and
ColumnName in ('col1', 'col2')
但肯定必须使用子查询来获取 TableName,因为 DBC.COLUMNS 没有该字段。还有什么想法吗?
【问题讨论】:
DBC.Columns
似乎是你要找的东西:info.teradata.com/htmlPubs/DB_TTU_14_00/index.html#page/…
【参考方案1】:
你正在寻找这个:
SELECT tablename
FROM dbc.columnsV
WHERE ColumnName in ('col1', 'col2')
【讨论】:
我更新了我的问题,我的主管说必须使用子查询 @Rocketq 。 . .当然tablename
在表中。被告知使用子查询会适得其反。
你说得对,它在桌子上,我查了show select* from DBC.Columns
请将视图更改为 dbc.ColumnsV,dbc.Columns 是旧版本,自 TD12 起已弃用。从 TD14.10 开始,如果使用超过 30 个字符的对象名称,它可能会返回错误结果...
@dnoeth 。 . .谢谢。【参考方案2】:
这个查询对我有用:
SELECT DatabaseName,
TableName,
CreateTimeStamp,
LastAlterTimeStamp
FROM DBC.TablesV
WHERE TableKind = 'T'
and DatabaseName = 'YOUR_SCHEMA'
ORDER BY TableName;
【讨论】:
以上是关于如何在 Teradata 数据库中查找所有具有特定列名的表?的主要内容,如果未能解决你的问题,请参考以下文章